Arjen Robben's spectacular late strike wrecked Manchester United's hopes of reaching a third successive Champions League final as he sent Bayern Munich through on away goals at Old Trafford.

The former Chelsea star rifled in a magnificent volley from Franck Ribery's corner with 16 minutes left to stun United after they looked to be cruising into the semi-finals as they went 3-0 up before the interval to establish a two-goal aggregate lead.
Robben capped a dismal week for United that has seen them lose the Premier League leadership and crash out of the Champions League - also ending English interest in the tournament after Arsenal's exit against Barcelona.
Wayne Rooney was in Sir Alex Ferguson's starting line-up as he completed a remarkable recovery from the ankle ligament injury he sustained in Bayern's 2-1 win against United in the Allianz Arena eight days ago.
And he was quickly a thorn in Bayern's side, setting up Darron Gibson's opener after just three minutes. United looked on course for the last four when Nani turned in Antonio Valencia's cross four minutes later to put them ahead in the tie.
Bayern were being run ragged and Nani capped United's complete supremacy when he scored his second and their third as half-time approached - but the whole mood and shape of the tie was turned when Ivica Olic took advantage of poor defending to bundle home a crucial goal before the interval.