Manchester City climbed to fifth in the table with a 2-0 victory over Bolton Wanderers.
Carlos Tevez converted a penalty for his 11th goal in 11 Premier League appearances, before Emmanuel Adebayor made the game safe in the second half.
City are level on points with fourth-placed Liverpool with a game in hand, while Bolton remain fourth bottom.
Roberto Mancini’s side struggled for fluency, but they took the lead after 31 minutes as Adam Johnson, on his home debut for City, was tripped by Paul Robinson.
Jussi Jaaskelainen got his body behind the ball as Tevez hit his penalty straight down the middle, but he could only shovel the ball just inside the post.
City, though, weren’t comfortable, and it took a diving save from Shay Given to keep out Fabrice Muamba’s deflected shot.
Bolton felt they might have had a penalty too, as Kolo Toure and Johan Elmander tangled in the box.
Tevez hit the bar with a dipping free-kick eight minutes into the second half, but City remained unconvincing.
The goal that settled the win came after 73 minutes as Patrick Vieira, on his City debut, lifted a ball into the box, Adebayor took it down on his chest and volleyed powerfully home.
Aruna Dinadane levelled in injury time as Portsmouth stretched Sunderland’s run without a Premier League win to 12 games.
Sunderland got off to the perfect start as Darren Bent was tripped in the box by debutant Ricardo Rocha.
The defender was sent off, and Bent rattled in from the spot, his fifteenth league goal of the season.
Sunderland then had Lee Cattermole and David Meyler sent off, and Dindane nicked a point at the death.
Wigan Athletic took the lead against Stoke City as Paul Scharner headed in Charles N’Zogbia’s cross after 14 minutes, but Tuncay Sanli levelled with 19 minutes to go to seal a 1-1 draw.
Wigan have won just one of their last 10 Premier League games.
Fulham continued their resurgence with a 3-0 win over Burnley, who remain two points clear of the relegation zone.
David Elm headed on Nicky Shorey’s cross for Danny Murphy to put Fulham ahead midway through the first half, and then got the second himself just after the half hour, knocking in the rebound as Bobby Zamora’s shot was saved. Zamora added the third in the second half.