Mason Bennett stepped from the bench to seal a 2-1 victory for Millwall over Cardiff that gave the hosts their first win in three games.
The forward added to Murray Wallace's opener as the Lions shrugged off a very sluggish start to see off a Bluebirds side who had won their previous three matches in the Sky Bet Championship.
It turned out to be a disappointing return to The Den for Cardiff manager Steve Morison, however, as his side could not make the most of a period early in the second half when they were well on top.
The match got off to a scrappy opening, with the two teams seemingly playing similar styles and cancelling each other out as a result.
A badly overhit free-kick from the right by Cardiff's Tommy Doyle rather summed up the early proceedings and, at that point, there was not much sign of the quality improving.
It took 25 minutes for the first decent effort to come and even that was a comfortable save for Millwall goalkeeper Bartosz Bialkowski, who beat away a Joe Ralls drive that was hit straight at him.
The first clear chance of the game came in the 33rd minute when Scott Malone's pass put Oliver Burke in behind, but Cardiff goalkeeper Alex Smithies came out to make a good block.
Sadly, it was an isolated moment of a rise in standards in what was a desperately poor first half that drew a chorus of boos from the supporters when referee Stephen Martin mercifully brought it to a close.
The Bluebirds started the second half brightly, however, with substitute Isaak Davies' low effort across goal having to be pushed out by Bialkowski, four minutes after the youngster's arrival.
Jordan Hugill then had a great opportunity to break the deadlock in the 62nd minute when he beat Bialkowski to Doyle's corner, only to head over from close range.
Having been on the back foot, Millwall had an opening themselves when Jed Wallace, making his first start in two months, sent a low effort wide from just outside the box.
The Lions then went ahead after 73 minutes when Malone's corner was allowed to run through for Murray Wallace, who stooped to head the ball past Smithies.
With their confidence finally raised, the hosts doubled their advantage with eight minutes remaining when George Saville did well to hang up a cross for fellow sub Bennett to head in from a few yards out.
Cardiff did pull one back in the third minute of stoppage time when Joel Bagan stabbed in Cody Drameh's deflected cross for his first senior goal, which ended up counting for nothing.
Millwall: Białkowski, McNamara, M. Wallace, Hutchinson, Cooper, Kieftenbeld, J. Wallace, Burke (Bennett 69’), Malone, Afobe (Evans 90’), B. Mitchell (Saville 69’).
Subs not used: Long, Pearce, Mahoney, Burey.
Cardiff City: Smithies, Drameh, Ng, Flint, McGuinness, Bagan, Wintle, Ralls, Doyle (Vaulks 76’), Harris (Davies 54’), Hugill (Ikpeazu 75’).
Subs not used: Phillips, Denham, Pack, King.