Middlesbrough survived a late scare to take a big step towards the last 16 of the Uefa Cup with a fine first-leg win.
Parnaby scored just after half-time in Boro's Uefa Cup tie
Stuttgart had the better of the opening exchanges before Boro's Jimmy Floyd Hasselbaink pounced on a blocked clearance to open the scoring.
George Boateng set up Stuart Parnaby in the first minute of the second half as Boro looked to be easing to victory.
But Daniel Ljuboja's excellent curling free-kick caused some panic for Steve McClaren's team in the final minutes.
Early on, Ljuboja went close three times in quick succession before Hasselbaink's opener.
The first chance drew a good save from goalkeeper Mark Schwarzer as the Germans made the most of a desperate backpass by Boateng.
He then flashed the second inches wide and only a deftly-timed intervention by Gareth Southgate denied him another chance.
But against the run of play, Boro went ahead through Hasselbaink.
Fernando Meira's dreadful clearance was blocked by Boateng's back and fell to Hasselbaink whose shot was only diverted into the net by keeper Timo Hildebrand.
The home side came back into the game as captain Zvonimir Soldo scared the Boro defence with a looping volley that flashed just wide and Chris Riggott's legs blocked a Jon Dahl Tomasson shot.
But less than a minute after half-time, Boro made it 2-0 when Boateng broke clear on the right and played the ball behind the incoming Hasselbaink into the path of Parnaby, who swept the ball into the roof of the net.
Hasselbaink should have made it 3-0 shortly afterwards but Hildebrand blocked his shot with his feet.
Ljuboja's looping header drew a good save from Schwarzer as Boro seemed to take their foot off the gas somewhat, with Boateng and Hasselbaink going off.
And they were made to pay with two minutes left when Ljuboja, Stuttgart's most threatening player all night, curled in an excellent free-kick.
This inspired a late rally by the home side but Boro held on.
Stuttgart: Hildebrand, Stranzl (Beck 46), Meira, Delpierre, Gerber, Gronkjaer, Meissner (Gentner 80), Soldo, Hitzlsperger (Gomez 66), Tomasson, Ljuboja. Subs Not Used: Heinen, Babbel, Tiffert, Magnin.
Booked: Hitzlsperger, Meira.
Goal: Ljuboja 86.
Middlesbrough: Schwarzer, Parnaby, Riggott, Southgate, Pogatetz, Doriva, Davies, Boateng (Kennedy 81), Rochemback, Downing (Johnson 73), Hasselbaink (Yakubu 85). Subs Not Used: Jones, Bates, Taylor, McMahon.
Booked: Pogatetz, Davies.
Goals: Hasselbaink 20, Parnaby 46.
Ref: Alain Hamer (Luxembourg