
Zak Vyner opened the scoring at The Den
Zak Vyner's first goal for nearly two years set Bristol City on their way to victory at Millwall, putting them into the heart of the battle for a Championship play-off place.
The centre-back tapped in from close range to break the deadlock and substitute Harry Cornick scored a second to give the Robins their first away win in 10 games and take them level on points with sixth-placed West Bromwich Albion.
Millwall were looking to boost their own bid for a top-six spot, but suffered only their second defeat in their past eight league games to remain seven points off the pace.
The home side, after the controversy of their FA Cup exit at Crystal Palace at the weekend, struggled in the face of a well-organised and constructive City side.
The Robins lost Nahki Wells to a minor injury problem before the game and had top scorer Anis Mehmeti on the bench, so the travelling support might have wondered where the goals were going to come from.
The answer was two unlikely sources, with Vyner scoring his first since he equalised in a 2-1 win at Stoke City in April 2023, while Cornick notched his first for more than a year, after replacing Sinclair Armstrong.
The Lions were subdued, failing to trouble City goalkeeper Max O'Leary until half-time substitute Aidomo Emakhu added some spark to their attack.
By then the visitors should have been ahead, George Earthy shooting straight at Millwall keeper Lukas Jensen and Scott Twine firing one chance straight at Jensen and another high over the bar.
Liam Manning's side went in front from a set-piece eight minutes into the second half.
Rob Dickie rose highest to meet Max Bird's corner. His header was going wide but fell kindly for Cameron Pring, who turned the ball back for Vyner to find himself in front of an open goal.
Emakhu created the one moment of panic for the Robins' defence, flying down the left and pulling the ball back, with O'Leary diving to push the ball out and then gratefully seeing his defence scramble it to safety.
Any lingering doubts were dismissed with seven minutes left when Cornick, making just his second league appearance of the season, knocked in the second.
The striker began the attack with a flick which found Sam Bell, who in turn tried to feed Earthy. A defender's block saw the ball cannon back to Bell, and when his shot was parried by Jensen, Cornick was in the right place to snap up the rebound.
'So many positives' - post-match reaction
Bristol City boss Liam Manning told BBC Radio Bristol:
"Credit to the lads. When you look at their attitude, their desire to defend, and the way they found a way to win, the maturity - there were so many positives to take out of it.
"The first 35 minutes we controlled the game, dampened the noise and managed the game how we wanted it. We spoke about how hard it is to come here and that we'd need to earn the right to make the game look like how we want, and we did it right for 35 minutes.
"The last 10 minutes of the first half we became a little bit passive, and the second half was a battle, won by a set piece and a moment of quality.
"It was long overdue from Zak. I've been giving him a lot of stick about it. He gets credit for the job he does but you need everyone to chip in, so I'm delighted he got the goal."
Millwall manager Alex Neil:
"We lacked cutting edge. If you look at their goals, one's from a corner and one's a goal-kick. It's not as if they carved through us, it was just basics.
"That's got nothing to do with how we are set up. The biggest frustration is the basics cost us the game without Bristol having to do too much.
"I thought we were better in the second half, so that's frustrating. We can't dwell on it too much. I don't think we did much wrong."