It took time for Manchester United to warm up, but a flourishing finale with two goals in the last ten minutes will put them in good heart for Tuesday's visit of Rangers in the Champions league.
United's performance in the first quarter was almost as bad as last Saturday's debacle against Fulham.
Unlike the Londoners, Portsmouth failed to take advantage and United got stronger and stronger as the game went on.
Had Patrik Berger not blazed over a good 11th minute chance for the visitors, who knows what further embarrassment would have been in store for the Red Devils.
Ruud van Nistelrooy, without a goal in his three previous appearances for United scorched the top of the Pompey bar with a blistering 29th minute volley, although the Dutchman blasted over a much easier chance from 12 yards six minutes later.
Van Nistelrooy began the move which saw United break the deadlock in the 37th minute. His superb long pass from left to right found Gary Neville on the opposite wing.
The England full-back's cross to the far post was headed back into the centre by Ryan Giggs for Diego Forlan to score his third goal in consecutive games with a crisp low right-foot shot from just inside the box.
United upped the tempo after the break although they were over half way to the second period before creating a real chance.
Eric Djemba-Djemba's neat pass into the Pompey area saw Darren Fletcher lure goalkeeper Shaka Hislop off his line, and his cross from the right by-line was headed wide by Nicky Butt at the far post.
United's double substitution of Roy Keane for Djemba-Djemba and Cristiano Ronaldo for Forlan in the 75th minute also proved a double bonus.
In the 80th minute, Ronaldo celebrated his first goal for the Red Devils when he curled a right-foot free-kick from the left through a ruck of players and into the far corner of the net from 20 yards.
Two minutes later, Ronaldo's throw on the right found Keane on the corner of the Pompey box and he bent a brilliant left-foot shot past Hislop and into the far corner of the net.
Portsmouth were left to rue a golden chance missed on the hour when Darren Fletcher's mistake let in Berger, but he squandered the chance.