Rampant Brentford moved into the Championship automatic promotion places with a 3-2 win over Bristol City.
The Bees struck back after the visitors snatched an early lead to extend their unbeaten run to 19 games.
Victory takes Thomas Frank's side above Swansea and to within four points of leaders Norwich, having played a game fewer.
City took just three minutes to break the deadlock, Zak Vyner ghosting in at the far post to stab home Jack Hunt's free kick as the Bees' defence ball watched.
Sergi Canos equalised just before the half hour, firing home after former Bees keeper Daniel Bentley could only parry Tariqe Fosu's driven cross into his path.
The hosts took the lead minutes after the break, Ivan Toney volleying home his 20th of the season from Fosu's pinpoint near post cross.
Saman Ghoddos made sure of the points with a superb strike just after the hour, ramming home the rebound after his initial shot was tipped onto the bar by Bentley.
But substitute Nakhi Wells made Thomas Frank's side sweat with a cool finish in the 90th minute after a Mathias Jensen slip on the edge of the box.
It was a test of character for the Bees after going behind so early, but they kept their composure to grow into the game.
Ghoddos came close to levelling on 14 minutes but his fierce dipping drive after a chested Toney pass was palmed clear by a relieved Bentley.
Canos signalled his intent for the hosts with two early efforts from the edge of the box as Brentford tried to get a foothold back in the game.
But the Spaniard only had to wait until just before the half hour for the equaliser when he fired home from close range after a blunder from another ex-Bee Alfie Mawson let in Fosu to cross from the by-line.
City started brightly after the break and Vyner nearly added to his early strike, picking his spot from the edge of the box only for David Raya to get down smartly and palm wide.
The let-off sparked Brentford into life and Toney's blistering volley gave them the advantage, which Ghoddos should have stretched just before the hour but fired wide.
He made amends with the Bees' third minutes later before Vyner was fortunate not to score at the wrong end when he almost deflected Canos' cross past his own keeper.
The Londoners played with swagger and looked a threat every time they attacked, with Ghoddos and Canos the main tormentors.
Toney's audacious chip from 35 yards had power but lacked direction, while City's attacking threat waned as the hosts played a possession game.
Substitute Tyreeq Bakinson did manage a rare second-half effort for the visitors but his low drive slid just wide of the upright.
At the other end Toney had a good shout for a penalty waved away when he was shoved in the box, before Mathias Jensen tested Bentley with a curling free kick.
The win stretches City's losing streak away from home to four matches.