Manchester City fought back from a goal down to see off Portsmouth and move into second place in the Premiership.
Stuart Pearce's side had been on top from the start but trailed when John Viafara rose to head home Laurent Robert's whipped free-kick.
City responded well and Claudio Reyna levelled, slotting home after Sander Westerveld spilled Joey Barton's cross.
And Andy Cole completed City's revival, controlling a Trevor Sinclair cross and firing in a low shot for the winner.
Pompey's approach had been all about stopping City scoring, but they were almost undone in the first minute.
Cole's hooked shot from Kiki Musampa's free-kick brought the best out of Westerveld, and more chances for the home team followed.
Brian Priske headed perilously close to his own goal while trying to clear Danny Mills' long throw and Reyna saw a shot flash wide - but Portsmouth held on.
Alain Perrin's side were defending in depth and in numbers, and had Lomana LuaLua as their only outlet up front.
He cut an isolated figure for most of the first half, but at the other end City were also struggling to create chances despite dominating possession.
The home side tried to use the flanks, with Musampa and Sinclair getting plenty of the ball - but they could not deliver a telling final pass.
And completely against the run of play, Pompey found themselves ahead on 52 minutes, Viafara evading Barton and nodding home Robert's dangerous delivery.
City's response was to pour forward, but they continued to look short of ideas.
It took Westerveld's mistake to gift Reyna the leveller on 66 minutes - and suddenly City looked galvanised.
Three minutes later, the ball fell to Sinclair on the right of the area and from his lobbed pass, Cole swivelled and drilled home a shot that was deflected into the bottom corner.
There was no way back for Portsmouth and Cole went close to adding a third as Pearce instruced his side to push on.
The victory means City are now unbeaten in 12 games - their best run in the top-flight for 28 years.
Man City manager Stuart Pearce:
"I feared it wasn't going to be our day.
"Portsmouth's gameplan worked nicely for an hour but I have got to give credit to my players.
"The way they scrapped away and kept doing the things I have asked them to do is fantastic. They deserved to turn the game around."
Portsmouth manager Alain Perrin:
"Sometimes, the best form of defence is attack.
"We need to keep the ball when we move it forward, which is something we found difficult to do here."
Man City: James, Mills (Jihai 45), Dunne, Onuoha, Thatcher, Sinclair, Barton, Reyna, Musampa, Cole, Vassell.
Subs Not Used: Sibierski, De Vlieger, Jordan, Wright-Phillips.
Goals: Reyna 66, Cole 69.
Portsmouth: Westerveld, O'Brien, Stefanovic, Priske, Griffin (Skopelitis 85), Viafara (Taylor 76), Hughes, Vignal, O'Neil (Karadas 76), LuaLua, Robert.
Subs Not Used: Todorov, Ashdown.
Booked: Viafara, Hughes.
Goals: Viafara 52.
Ref: A Wiley (Staffordshire).