
The England striker tapped in his 100th club goal in the 42nd after goalkeeper Joe Hart had spilled Michael Carrick's shot from a tight angle.
"We needed to win the game because we are behind Liverpool and Chelsea, so it was a significant result for us," United manager Alex Ferguson said. The Red Devils, who played the last 22 minutes with 10 men, clung on to their slender advantage despite facing a far more assertive City in the second half.
Ronaldo was booked for tripping Shaun Wright-Phillips in the 59th. He then sarcastically applauded referee Howard Webb.
The Portugal winger was then shown a second yellow card for deliberately handling Rooney's corner.
"He has tried to shield the ball from hitting his face, and he might get a shove in the back as well," Ferguson said.
"He thought he had heard the referee's whistle. But I'm not going to get into it because we could be here all day."
Portsmouth, which moved up to seventh place, lost its two-goal advantage when Matt Derbyshire and Tugay Kerimoglu scored after earlier goals from Peter Crouch and Jermain Defoe.
Sean Davis struck the winner in the 79th after goalkeeper Paul Robinson did well to block an initial shot from Papa Bouba Diop. Tottenham lost its first home match under new manager Harry Redknapp, going down 1-0 to Everton.
Darren Bent wasted the home side's best chance in a scoreless first half when he shot straight at goalkeeper Tim Howard in the 41st minute, while Everton's Tim Cahill missed a free header in the 43rd.
... contd.