Ronaldo's stunning double in the space of three minutes, increasing his goal tally this season to 27 in all competitions, lifted the reigning champions above Arsenal on goal difference. Chelsea kept up the pursuit with a 1-0 home win over Reading thanks to Michael Ballack's first-half header while Liverpool slumped to a late 1-0 defeat to West Ham United.
Fourth-placed Everton were held to a 0-0 draw at home by Tottenham Hotspur, and Manchester City drew 1-1 at bottom club Derby County.
With the influential Paul Scholes making his first start since October, the champions ran riot early on at the Old Trafford and were 2-0 up inside the opening 13 minutes.
On nine minutes, Ronaldo chested down a Scholes pass before a slick one-two with Nani saw he coolly slip the ball through the Portsmouth keeper David James' legs.
With England manager Fabio Capello looking on, the PFA Player of the Year left James in disbelief again three minutes later with another display of his talented gifts.
Lining up a free-kick from 30 yards, Ronaldo lashed the ball with incredible pace and power into the very top corner.
A shell-shocked Portsmouth fought to get back into the game butthey never recovered.
England striker Wayne Rooney should have extended their lead but swiped at the ball carelessly when presented with a clear chance from six yards out after Scholes, Nani, and Patrice Evra, had all linked well to play him in.
James, making his 500th Premier League appearance, saved well from a powerful Ferdinand header on 50 minutes and Rooney, looking out of sorts, fluffed an attempted lob from 20 yards with only the veteran Pompey stopper to beat.
An injury-time penalty from Mark Noble boosted West Ham's European hopes with a 1-0 victory at home to Liverpool.
Noble placed his spot-kick low into the corner of the net after Jamie Carragher had tripped Freddie Ljungberg deep into stoppage time.