The Bees forward, left out of Gareth Southgate’s squad for Qatar this week, netted a stoppage-time winner at the Etihad Stadium to condemn City to a shock loss in their final match before the break.
Toney, outstanding throughout, had put Brentford ahead on 16 minutes only for Phil Foden to level on the stroke of half-time.
Both sides had opportunities in the second half but Toney had the final say deep into the 10 minutes of time added on, ending City’s run of 11 straight home league wins.
The talk pre-match had surrounded the return of Erling Haaland to the City starting line-up after injury but he was overshadowed by Toney.
Brentford had not won away all season and few gave them much chance of altering that statistic at City.
Yet manager Thomas Frank had promised to take the game to the champions and they delivered.
The Bees opened City up twice in the early stages only to be thwarted by home goalkeeper Ederson on both occasions.
Frank Onyeka had the first opportunity when he raced through one on one but Ederson stood up well.
A Rico Henry run then had City back-pedalling again and Ederson’s failure to claim his cross allowed Bryan Mbuemo to tee up Toney but the keeper recovered to beat away his shot.
It was a gilt-edged chance but Toney did not rue his miss for long as he made amends by giving his side the lead soon after.
David Raya launched a long free-kick towards the box and Ben Mee jumped highest to nod on. Toney reacted quickly, beating Aymeric Laporte to flick a looping header over Ederson.
City responded strongly but were repeatedly frustrated in or around the box by Brentford’s determination to get numbers back or, unusually, their own failure to produce final balls of quality.
A sustained spell of pressure did lead to a number of penalty appeals, the first after Bernardo Silva seized on a loose ball and won a handball verdict off Henry at the byline.
The only issue was whether the incident took place inside the box but a free-kick just outside was the eventual decision.
From there Kevin De Bruyne flicked the ball into a crowded box and there were shouts for a shove on Haaland, another handball as well as a foul on the Belgian. None were given.
City eventually levelled just before the break after De Bruyne had tested Raya. A corner fell to Foden in the box and he clinically lashed a shot into the roof of the net.
There was a lengthy delay early in the second half after Laporte suffered a nasty head wound in an accidental collision with Ethan Pinnock’s elbow. He was deemed fit to continue after being bandaged up.
City battled on with Joao Cancelo having a shot deflected wide and Ilkay Gundogan scooping a good chance over.
Brentford threatened again but Toney was twice denied, first by an Ederson save and then a vital Laporte interception as he stretched to reach a Henry cross.
Raya saved from De Bruyne and Cancelo, who was also booked for diving in the penalty area in the 85th minute.
Ederson then denied Toney with his feet but the Bees forward was not finished and turned home a cross from Josh Dasilva to win it.
He might have had a hat-trick but for a goalline clearance from De Bruyne.