Kwame Poku, Ricky-Jade Jones and Malik Mothersille were on target as Posh recorded a first home league win of the campaign.
It looked like it was going to be a pretty straightforward first home league win of the campaign for Peterborough United when Malik Mothersille added a third goal midway through the second half against Bristol Rovers, but the phrase 'football is a funny old game' was in evidence once again as the Gas stepped on it and forced an extremely nervy finale.
The Pirates scored twice inside as many minutes and goalkeeper Jed Steer was forced to make two excellent saves as the momentum of the fixture swung firmly in the favour of the visitors. However, despite a rather questionable 10 minutes of added time, Darren Ferguson's men clung on for all three points.
With a new formation deployed and David Ajiboye restored to the starting line-up as a wing-back, Posh started brightly with skipper Hector Kyprianou firing wide after linking well with Ricky-Jade Jones and Chris Conn-Clarke.
The deadlock was broken on 10 minutes as a clever pass from Kyprianou picked out POKU, goalkeeper Griffiths was in no-mans land because of the quality of the service and the in-form number 11 volleyed the ball into the back of the net via a slight deflection.
Conn-Clarke was forced off due to injury moments after he fired wide from just inside the penalty area after a flowing Posh move. Conn-Clarke was sent to hospital due to a collar-bone injury with the full extent of the length of time he will be out unknown.
Substitute Malik Mothersille was denied by Griffiths and then a retreating defender after good work closing down from Jones on 25 minutes.
On 33 minutes, Posh doubled their lead as a mistake at the back was capitalised on by JONES who raced clear, rounded Griffiths and slotted into an empty net.
Conteh saw a looping header tipped over by Steer on the stroke of half-time with Sousa firing wide from the angle as the Pirates finished the half well.
Sotiriou fired wide two minutes after the break before Jones was superbly repelled by Griffiths after a teasing centre from Sparkes.
On 63 minutes, Posh made it 3-0 as Sparkes fed MOTHERSILLE, who took a good first touch before firing past Griffiths with his left-foot.
On 73 minutes, the visitors reduced the arrears as MCCORMICK rifled a shot into the back of the net and a minute or so later, it was two as O'DONKOR somehow headed home.
Steer did well to keep out O'Donkor with his legs and then the former Aston Villa custodian produced a superb stop to tip a volley from Wilson around the post as Posh clung on.
Posh: Steer, Collins, Wallin, Conn-Clarke (sub Mothersille 20min), Ajiboye (sub Curtis 78min), Poku, Jones (sub Odoh 55min), Sparkes, Kyprianou, Katongo, Fernandez. Unused subs: Bilokapic, Randall, O’Brien-Brady, Dornelly.
Bristol Rovers: Griffiths, Sousa, Wilson, Mola, Omochere (sub O’Donkor 58min), Sotiriou (sub Forde 78min), Taylor, Conteh, Bilongo (sub Thomas 58min), Lindsay (sub Ward 70min), Shaw (sub McCormick 58min). Unused subs: Sinclair, Garrett.
Attendance: 8,006 (361 Bristol Rovers fans)
Referee: F. Hallam
Half-time: Peterborough United 2-0 Bristol Rovers
Full-time: Peterborough United 3-2 Bristol Rovers