It was a surprise result for the Welshmen who never recovered from the shock of conceding two goals in the first 17 minutes.
But it was no more than the skilful and hard-working home side deserved.
Rovers had been given a lesson in chance taking by Tottenham when they were beaten 5-1 in the Carling Cup during the week.
But they had matched the Premier League leaders for the quality of their football for long periods and this time they provided the finishing to round off their performance.
Both sides worked hard to deny each other space at the start, but Doncaster showed early signs of having the edge even before Cardiff suffered an injury blow when striker Jay Bothroyd limped off in the ninth minute.
Rovers gradually took charge with skipper Brian Stock pulling the strings in midfield and James Coppinger sounded a warning when he fired just wide in the tenth minute.
Rovers went ahead three minutes later when defender Adam Lockwood charged in at the near post to send a thundering header past visiting keeper David Marshall following a corner from Martin Woods.
Cardiff barely had time to recover before they found themselves two goals down following another splendid Doncaster move in the 17th minute.
It resulted in John Spicer crossing from the left and when Stock tried his luck from long range, James Hayter controlled the shot and spun sharply to fire just inside the post.
Cardiff were rattled but were given the chance of a lifeline in the 60th minute when home keeper Neil Sullivan made Michael Chopra a present of the ball.
But the off-key £4million striker produced a weak finish as he hit the ball straight into Sullivan's hands.
It was Doncaster who looked likelier to add to their score in the second half and apart from a good effort from Peter Whittingham, which was pushed round the post by Sullivan eight minutes from time, City never looked like scoring.