Ronaldo's second Champions League goal of the season was spectacular
Cristiano Ronaldo struck a stunning winner as Manchester United saw off the threat of Porto to seal a Champions League semi-final tie against Arsenal.
Ronaldo's thunderous early strike from just shy of 40 yards flew across goal and into the top corner.
Nemanja Vidic missed a great chance from five yards late in the first half and Dimitar Berbatov had a shot saved.
Lisandro Lopez might have scored a dramatic late goal for Porto, but Edwin van der Sar saved his weak shot.
It was United's first clean sheet since their Champions League victory over Inter Milan on 11 March and it could not have been more timely as United became the first English club to win at Porto in European competition.
With Rio Ferdinand restored to the side after a three-game absence there was an increased assuredness to the United backline and in truth, Porto failed to create any clear-cut openings until Lisandro's 85th-minute chance.
However, United's failure to score a decisive second goal ensured a nervous final few minutes to the tie as Porto pushed for the equaliser that would have put them through on the away goals rule.
The first 20 minutes of the match must have been close to perfect for United manager Sir Alex Ferguson, who was presiding over his 150th Champions League game.
Wayne Rooney started on the right with Ryan Giggs on the left and Ronaldo supporting Berbatov up front. This formation allowed Ronaldo to occasionally drop deep in search of possession, which he did after six minutes before smashing his amazing goal.
United dominated possession, allowing them to play the game at a steady, controlled tempo, and there were few alarms for Van der Sar, who allowed a free-kick from Bruno Alves to drift wide of his goal.
Porto gradually forced their way into the match, slowly pushing United towards their own goal, and Van der Sar was eventually forced into action to save Christian Sapanuru's shot on the turn while Bruno Alves headed wide from a free-kick.
The home team lost momentum when Lucho Gonzalez was stretchered off the field after a delay while he received treatment and United went on to create a brilliant chance to take full control of the match.
Players' freshness was key - Ferguson
John O'Shea flicked on Giggs's corner and the ball dropped invitingly to the unmarked Vidic but the defender's effort flew wastefully over the crossbar.
Porto's Raul Meireles and Hulk shot over after the break, while Berbatov collected a beautifully weighted pass from Rooney but his subsequent shot lacked power and Helton saved.
By this stage it was pouring down in Porto but Van der Sar made no mistake with a Hulk free-kick, while Rolando headed wide beyond the far post for the home side.
The visitors continued to press and the match became increasingly tense as United dropped deeper and deeper.
But it was United, who play Everton in an FA Cup semi-final on Sunday, who went close to a second goal, with Helton making a good low save to claw away Ronaldo's shot.
Helton, Sapunaru (Costa 80), Rolando, Bruno Alves, Cissokho, Lucho Gonzalez (Mariano Gonzalez 31), Fernando, Raul Meireles, Lopez, Hulk, Rodriguez (Farias 64).
Subs Not Used: Nuno, Stepanov, Guarin, Madrid.
Van der Sar, O'Shea, Ferdinand, Vidic, Evra, Giggs, Carrick, Anderson (Scholes 78), Rooney, Berbatov (Nani 68), Ronaldo.
Subs Not Used: Foster, Neville, Evans, Tevez, Macheda.
Massimo Busacca (Switzerland).
BBC Sport Player Rater man of the match:
Manchester United's Cristiano Ronaldo on 8.19 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.