For 2 digits then 3 pins and two shift-registers is fine. However, you could also use your three pins to control a driver chip such as a Maxin 7219, which will drive up to 8 digits (and can be daisy-chained).
The advantage of the driver chip is that you only need one resistor to set the current rather than 14 resistors for 2 digits using shift registers.
The initial setup may need changing for the different chip and you only want 2 digits rather than four, but the data-transfer functions should be the same. I defined my own characters but the chips have a "decode" mode where you just send them the number and they display it using a built-in font.
For the shift registers you connect each pin of your 7-segment to a shift-register output using a suitable resistor. You connect the data-in of the first shift register to the Ardu' and the data-in of the second to the data-out of the first. Both shift registers are connected to latch and clock pins on the Arduino. You send data with shiftOut just like the shiftOut tutorial.
If using a shift register, you are usually turning on all the segments together.
So you would use a resistor per segment betweent he 74HC595 and the display pins.
MR needs to be tied to VCC, not Gnd.
Size the resistors for 10mA, the HC595 only supports 70mA max.
TPIC6B595 is much better as a current sink, can handle 20mA/segment for all 7 segments.
You may find 10mA is bright enough, depends on the display.