Bristol City fought from behind twice to secure a thrilling 3-2 victory against Sheffield United at Bramall Lane thanks to an Andreas Weimann hat-trick.
The home side twice took the lead through Billy Sharp and Scott Hogan but Weimann's inspired performance gave the visitors all three points.
Sheffield United boss Chris Wilder made one change to the side that beat Leeds United 1-0 before the international break. Kieran Dowell replaced Martin Cranie in the starting line-up.
Bristol City boss Lee Johnson resolved his goalkeeping dilemma by picking Max O'Leary over Stefan Marinovic, which was one of four changes for Bristol City. Jay Dasilva, Korey Smith and captain Bailey Wright also came in for the Robins.
The Blades came into the game in second place, unbeaten in 10 league matches. Wilder's side had not conceded a goal in seven league games and were looking to equal a club record of eight consecutive league clean sheets set in March 2014.
City began the day two points off the play-offs but had not won a game in five, losing three and drawing two.
The home side's positive early start was rewarded with a goal in the sixth minute. John Fleck curled an inviting left-footed free kick into the box which top goal scorer Sharp headed home to give United the lead.
Minutes later, David McGoldrick nearly doubled the lead when Bristol lost possession just outside their penalty area. McGoldrick picked the ball up and fired a powerful left-footed effort which O'Leary reached down well to save.
Josh Brownhill nearly equalised with a long-range effort which was heading into the top corner before Dean Henderson got across to save acrobatically.
The visitors found the equalising goal half an hour in. Jack Hunt floated a hopeful ball into the area forcing Weimann to improvise well and loop a backwards header which flew over Henderson and in at the far post.
United came close to re-gaining the lead late in the first half. Another Fleck set piece this time found Jack O'Connell from a corner and he snuck in at the far post but headed his effort off target.
The away side began the second half brightly. Weimann weaved past United's defence and found Smith who struck a low, driven shot which Henderson held onto well.
United responded and went close through Fleck. He carried the ball across the midfield and past defenders before releasing a powerful left-footed shot which O'Leary pushed away for a corner.
Bristol were given a free kick on the edge of the box after Oliver Norwood's tackle on Weimann was deemed to be a yellow card. Brownhill stood over it and hit his free kick which left Henderson planted and looked to be heading in but struck the left post and bounced away from danger.
But the home side took the lead again when George Baldock's work down the right gave him the space to deliver a cross. Baldock's cross was deep to the far post where half-time substitute Hogan jumped highest and planted his header into the back of the net with 19 minutes remaining.
That lead lasted six minutes as substitute Kasey Palmer chipped a dangerous ball into the far post where Weimann was to poke home for his second of the game.
Weimann sealed his hat-trick in the 83rd minute when the defence failed to clear their lines, allowing him through to calmly lift the ball over a diving Henderson and into the back of the net.