Jed Wallace scored one and made another as Millwall deservedly beat lacklustre Championship play-off hopefuls Bristol City.
The 25-year-old former Wolverhampton Wanderers winger put the visitors ahead when he turned inside and squeezed a low shot past goalkeeper Daniel Bentley at the near post.
Millwall doubled their lead after the break through centre-half Jake Cooper, who glanced Wallace's free-kick into the corner.
Callum O'Dowda's half-volley with six minutes remaining gave the hosts brief hope, but Gary Rowett's side held out to extend their unbeaten run to six matches.
City produced impressive displays in beating Huddersfield and Fulham in their previous two games, but were only able to build up a proper head of steam once O'Dowda had halved the deficit out of nothing.
Substitute Pedro Pereira came closest to an equaliser, forcing Bartosz Bialkowski into a smart save with his feet, as the Robins laid siege to the visitors' goal in the closing stages.
Prior to that, Millwall had looked surprisingly comfortable and were good value for their two-goal advantage.
As well as being typically well organised they also looked the more threatening in attack, with Wallace unlucky not to make it 3-0 when he was denied by a smart Bentley stop.
At the other end, only a long-range effort from Josh Brownhill which dropped narrowly wide had even come close to troubling Bialkowski.
Millwall are now just four points off the play-off places in 12th, while Bristol City remain fourth.
Bristol City head coach Lee Johnson told BBC Radio Bristol:
"It was a poor start. The goal we conceded was an accumulation of four or five errors on the spin.
"With the way Millwall set up it was the worst thing that could happen, in terms of conceding a sloppy goal early. It gave them strength.
"The crowd became more anxious, that led to the players being anxious and it wasn't until the last 15 minutes we had enough box entries."
Millwall manager Gary Rowett told BBC Radio London:
"I thought it was an outstanding performance for 80 minutes.
"We concede the goal and then we have a little habit of panicking a bit and holding on for dear life, and I'd like us to be a bit braver and have more composure.
"First half, I know I am biased but that is as good a performance away from home as you are going to see and we opened them up at will."