Rangers made a superb start to their Champions League campaign by coming from a goal behind to earn a narrow victory against Stuttgart.
The German side went ahead after the interval when Mario Gomez touched home an Antonio da Silva cross.
Rangers countered with a superb run by Alan Hutton which ended with Charlie Adam curling an exquisite shot past Raphael Schafer.
It was Hutton again who was instrumental in the Rangers winner with a powerful run into the penalty area where he was brought down by Fernando Meira.
Jean-Claude Darcheville made no mistake with his spot-kick and after that there only looked to be one winner and Rangers should have added to their lead.
Stuttgart were the better side in the opening stages though and Ricardo Osorio tested Allan McGregor with a powerful shot. The German side should have taken the lead when Gomez sprung the offside trap but the striker pulled his shot wide.
With Darcheville playing as a lone striker, Rangers were finding it hard to mount any sort of attack but Adams' interception led to Darcheville bringing a great save from Schafer.
Adams then hit a volley narrowly over as Rangers came more into the match. Darcheville saw another effort blocked before Cacao was denied by a fine save from McGregor.
After half-time Roberto Hilbert wasted a good chance by blazing wide before the visitors took the lead. It was a somewhat fortunate goal as Antonio's cross looked harmless until Gomez deflected it in.
Rangers responded well to this setback and drew level six minutes later. Hutton went on a mazy run from the halfway line before passing to Adam who cut inside the full-back and sent a superb shot past Schafer.
When Stuttgart hit back, Carlos Cuellar lost possession on the edge of his penalty area but McGregor saved well from Cacao.
Rangers should have taken the lead when a great move by Barry Ferguson and Darcheville left Steven Whittaker in the clear but the midfield played pulled his shot badly wide from 16 yards.
Rangers' winner was not long delayed as Hutton reached the ball in the box before Meira who pulled him down. Darcheville confidently struck his penalty home to earn Rangers a deserved victory.