The Bluebirds recorded the first win of their travels this campaign as two superb second half moves involving Craig Noone brought the points home to South Wales.
The two encounters between the sides last term ended in goalless draws, and it looked like another stalemate was on the cards at half time as neither side had managed to break the deadlock.
Several brave blocks from the City back four prevented Marshall from being tested too much in the opening 45 minutes as Andrew Taylor did particularly well to get in the way of James Henry's low drive.
And it was the attacking midfielder who went closest for the Lions as half time approached. His 25 yard free kick was well saved by Marshall as it curled towards his bottom right corner. Cardiff would have felt unlucky not to have taken the lead, however, as Whittingham's superb free kick from the right flank was ruled out for an alleged push in the box.
But it was in the second half that the difference between the two sides was shown. First Craig Noone cut in from the left and set up Whittingham to fire a trademark shot into the top corner, giving City the lead. And then provider turned scorer as the lively winger stepped up to curl the ball into the far corner with his right foot just two minutes later. The three points secure City's position just one point off the summit of the championship table.
City launched the first real attack of the game as neat interplay between Tommy Smith and Jordon Mutch led to a crossing opportunity for Craig Noone on the left wing. His centre was cut out at the near post though, with Maynard lurking in the six yard box.
But the first half-chance of the match fell Millwall's way, and to a City old boy, Andy Keogh. His shot was too weak to evade a number of Cardiff blockers though, after he was set up by captain Liam Trotter - given a free roll on the night by Kenny Jackett.
A brilliant block by Andrew Taylor then prevented Millwall from taking the lead, as they sustained a brief period of pressure in the final third. Darius Henderson spun past Matthew Connolly before squaring the ball to Henry. Taylor was on hand to stop his low shot, before Jimmy Abdou's long range effort was comfortably saved by Marshall.
The Lions fired one more warning shot to City as Liam Trotter cleared the bar from the edge of the box but Tommy Smith, who was operating very well down the right flank, soon won a free kick at the other end. Peter Whittingham stood over the ball wide on the right-hand side of the pitch and stepped up to smash it superbly in to the far top corner - only for the referee to rule it out for an alleged push in the box.
Nicky Maynard was proving to be a thorn in Millwall's side with his pace and tireless work rate. The lone striker set up McNaughton on the right hand side after a trademark run, but Mutch's flicked header from the Scotsman's delivery went just wide.
Perhaps Millwall's best effort so far came from an unlikely source, as centre back Karleigh Osborne hooked the ball wide of the post from just outside the box. The referee then gave the Lions a free kick 25 yards out, adjudging that Matthew Connolly had missed the ball as he brought down Andy Keogh. James Henry curled the ball towards the bottom right corner but Marshall got down well to parry the ball away as a fairly even first half came to an end.
HALF TIME: MILLWALL 0 - 0 CARDIFF CITY
Alan Dunne was the first player to enter the book after cutting down Craig Noone, and Shane Lowry soon joined him in the referee's book, with just a couple of second half minutes played. Noone then fired wide with his weaker right foot after the ball broke from the resulting free kick - the Bluebirds starting the second half on the front foot.
But the Scouse winger then set up the opening goal of the game. Noone picked up the ball on the left before cutting inside and squaring the ball to Whittingham, who was given far too much space by the Millwall midfield. Whitts stepped up to do the inevitable, expertly firing a curled shot in to the top corner, leaving Maik Taylor with no chance.
GOAL: MILLWALL 0 - 1 CARDIFF CITY (Whittingham, 53 mins)
In a sensational couple of minutes from the young winger, he then doubled the Bluebirds lead. The impressive Tommy Smith fed him the ball on the left hand side of the box, and he made no mistake on his right foot this time around - curling the ball low in to the far corner in front of the travelling City fans.
GOAL: MILLWALL 0 - 2 CARDIFF CITY (Noone, 55 mins)
Substitution Millwall: Chris Taylor on for Josh Wright and Chris Wood on for Darius Henderson (57 mins)
Another great block by the City defence prevented Comoros international Jimmy Abdou from pulling one back for the Lions with another long drive. But a worrying moment for Cardiff soon followed as Nicky Maynard appeared to pick up an injury after a challenge by Karleigh Osborne and was stretchered off, to be replaced by Heidar Helguson.
Substitution Cardiff: Heidar Helguson on for Nicky Maynard (67 mins)
Tommy Smith showed his class in the 70th minute as he saw his sublime effort blocked as it appeared to be goal-bound. Whittingham picked out the winger superbly from a corner, in a move reminiscent of Beckham and Scholes at their finest, and Millwall did well to keep out his powerful volley.
Cardiff sat back and absorbed some pressure from Millwall as the final 10 minutes of the match approached. The Lions struggled to carve out a genuine goal scoring opportunity, however, while City remained a threat on the break.
Substitution Millwall: Shaun Batt on for James Henry (79 mins)
Substitution Cardiff: Kim Bo-Kyung on for Craig Noone (79 mins)
The City fans were treated to a first glimpse of new signing Kim Bo-Kyung in the final minutes. The South Korea international came on for Craig Noone - arguably man of the match for the Bluebirds - and he soon responded to the fans pleas for him to do the ayatollah, after some prompting from Andrew Taylor. City held on for the final ten minutes as they never really looked in danger of conceding a consolation goal, leaving the final score at 0-2.
FINAL SCORE: MILLWALL 0 - 2 CARDIFF CITY