Peterborough United suffered a fifth straight league defeat, but can feel mighty unlucky they did not take something from this pulsating Sky Bet League One encounter with Clayton Donaldson firing a late winner for the in-form Bees.
Tyrone Barnett tested goalkeeper Button inside the opening seven minutes, with the shot-stopper doing well to prevent Britt Assombalonga on the follow-up as Posh made a bright start.
At the other end, Harris saw a low shot go wide of the near post on the 10-minute mark as the Bees responded with a lively attack of their own.
Saville fired over the top on 26 minutes from long-range while Payne fired over at the other end on 32 minutes after a corner was only half cleared by the Bees back-line.
Brentford made the breakthrough on 35 minutes as a cross from the right was met at the near post by a diving header from Zakuani, diverting the ball past the despairing dive of goalkeeper Olejnik.
Tomlin saw an effort from 25-yards drift past the upright after Barnett's reverse pass to Assombalonga had fallen into the former Rushden and Diamonds man's path.
Ntlhe dragged a shot wide of the target on 54 minutes as Posh appealed in vain for a corner kick. Trotta saw a clever shot on the turn deflect inches past the post on 56 minutes.
Moments later, Posh were level and what a stunning goal it was too. Jack PAYNE collected a cleared cross and volleyed a superb right-foot volley past Button and into the back of the net.
On the hour mark, Posh got their noses in front as a header from Zakuani was flicked on by Barnett and ASSOMBALONGA produced a superbly clinical finish past Button to give Darren Ferguson's men the lead.
Harris was denied an equaliser by a comfortable stop from Olejnik after a good centre from Donaldson. Danny Swanson replaced the hard-working Anderson on 72 minutes.
On 80 minutes, the Bees drew themselves letter as SAVILLE bundled the ball over the line after E Alagui had seen his initial header hit the inside of the post.
Craig headed a corner kick wide of the near post on 82 minutes as the Bees pushed for a winner. They got the winner in the 88th minute as Clayton DONALDSON shifted the ball onto his right-foot and fired low past Olejnik and into the back of the net.
Olejnik pushed a fierce drive from Dean around the post in stoppage time as five minutes was indicated by the official.
Final Score: Brentford 3-2 Posh
Brentford: Button, Forshaw,Craig, Dean, Douglas, Donaldson, McCormack, Saville (sub Saunders 85min), Bidwell, Harris (sub El Alagui 72min), Trotta (sub Grigg 61min). Unused subs: Lee, Logan, Fillo, Diagouraga.
Posh: Olejnik, little, Ntlhe, Bostwick, Zakuani, Payne, Ephraim, Anderson (sub Swanson 71min), Tomlin (sub Mendez-Laing 86min), Barnett, Assombalonga. Unused subs: Day, Brisley, Jeffers, Vassell, McCann.
Attendance: 6,014 (433 Posh fans)