Goals from Tom Bradshaw and Mason Bennett saw Millwall end a 10-match winless streak with a 2-0 Championship win at 10-man Bristol City.
The visitors took an 18th-minute lead when a Jed Wallace free-kick rebounded off the wall and into the path of Ryan Leonard, whose low drive from outside the box was deflected past Dan Bentley by Bradshaw.
The visitors made it 2-0 in the 68th minute when City midfielder Han-Noah Massengo was robbed and the resulting counter-attack ended with Bennett curling in an exquisite right-footed shot from the left corner of the box.
The hosts had a night to forget, struggling to mount meaningful attacks from first whistle to last. Their misery was complete when substitute Famara Diedhiou was sent off for a high boot, his second booking in the space of six minutes.
Both managers made changes after challenging their teams to bounce back from poor performances.
City head coach Dean Holden reacted to the 2-0 defeat at Rotherham by bringing in Adrian Mariappa and Taylor Moore, while Massengo replaced the injured Chris Brunt.
Millwall boss Gary Rowett made four changes from the 3-0 defeat by Middlesbrough, calling in Murray Wallace, Shaun Williams, Bradshaw and Jon Dadi Bodvarsson.
It was Bodvarsson who headed wide from the first chance of the game. But soon the first half developed into a scrappy affair with neither side able to create much.
Bradshaw opened the scoring 18 minutes into the game and that briefly sparked City into life, with Nahki Wells almost equalising with a free-kick from the corner of the box which nearly caught out Bartosz Bialkowski, who dived to save one-handed at the near post.
Millwall should have doubled their advantage in the 29th minute as a Bradshaw cross found its way to the far post where Bennett lifted his shot over when unmarked.
City were struggling to put any meaningful passes together against well-drilled and committed opponents desperate to end their recent poor run.
That pattern continued at the start of the second half and by the 58th minute Holden had seen enough, sending on Callum O'Dowda and Diedhiou for Mariappa and Adam Nagy.
Millwall looked comfortable as the home side appeared content to play square passes without any semblance of penetration.
Bennett made it 2-0 22 minutes before the end, with his goal summing up City's lacklustre display as Massengo was robbed far too easily.
Holden went for broke by replacing captain and centre-back Tomas Kalas with striker Antoine Semenyo, but by then Millwall were in complete control.
It took a brave Bentley save near the end to prevent the impressive Wallace making it 3-0, a scoreline that would not have flattered Rowett's team.
Substitute Matt Smith also forced a Bentley save and the home side looked grateful to hear the final whistle.