Britt Assombalonga scored twice as Peterborough beat Bristol City.
Tyrone Barnett put Posh ahead, netting from close range after keeper Frank Fielding parried Craig Alcock's shot.
Fielding made up for his mistake when he saved well from Lee Tomlin's penalty, awarded for James O'Connor's trip on Assombalonga.
But the DR Congo-born striker added two to finish the game - an unstoppable 25-yard drill followed by an audacious shot over Fielding.
The result means Bristol City remain without a win in the league this season, while Peterborough have taken 16 points from seven games.
VIEW FROM THE DRESSING ROOM
Bristol City head coach Sean O'Driscoll told BBC Radio Bristol:
"Goals change games. When they scored it definitely gave them a lift.
"The first was a goalkeeping error. We thought we were almost on top of the game.
"I was behind him [Assombalonga] for the second goal. If he hits a better shot than that this season then I'll eat my hat.
"They paid £1.2m for him. He's someone I was interested in on loan. We always knew he had that in him."
Bristol City 01 Fielding 02 Moloney (McLaughlin - 80' ) 05 Flint 17 Cunningham 24 O'Connor 11 Wagstaff 14 Reid Booked (Harewood - 70' ) 15 Bryan Booked 21 Pack 09 Baldock 10 Emmanuel-Thomas Substitutes 13 Parish 03 Williams 22 Shorey 25 Elliott 27 Burns 28 McLaughlin 23 Harewood Peterborough United 01 Olejnik 02 Alcock 06 Bostwick 20 Knight-Percival 31 Little 07 Swanson (McCann - 76' ) 08 Payne 10 Tomlin (Kearns - 76' ) 14 Rowe 09 Assombalonga Booked 23 Barnett Booked Substitutes 13 Day 03 Ntlhe 05 Zakuani 11 McCann 16 Kearns 19 Mendez-Laing 28 Gordon-Hutton