Cardiff keeper Dimi Konstantopoulos was at fault for the first goal
David Mooney netted on his first start for strugglers Norwich to dent the promotion hopes of high-flying Cardiff.
After a blank first half, Mooney - on loan from Reading - pounced on Cardiff keeper Dimi Konstantopoulos' clanger.
Tony Capaldi failed to deal with Wes Hoolahan's long ball, Konstantopoulos coming forward indecisively only to see Mooney beat him to the ball to score.
As Cardiff chased in injury time, Alan Gow's pass beat the offside trap, sub Cody McDonald scoring from 12 yards.
Norwich manager Bryan Gunn told BBC Radio Norfolk:
"I think the performance we put on was probably the best the lads have achieved in my time as manager.
"We had to rely on an excellent goalkeeping performance from David Marshall and a fantastic defensive performance marshalled by Gary Doherty and Jason Shackell.
"The midfield were excellent in terms of hunting in packs, and obviously the strikers tonight have come up trumps, I'm delighted for everyone because there's been a lot of nerves about since our weekend result at Blackpool."
Cardiff manager Dave Jones:
"It was a very disappointing performance, we never really got going and handed the initiative to them with a really poor first goal.
"It was a nothing through ball that should have been dealt with but Dimi hesitated when he should have put his boot through it and their player nipped in to score.
"The second goal was also poor because it was another nothing ball that we should have defended but for some reason we tried to play offside.
"Overall the players did not perform nearly as well as they can do.
"They were lethargic, made too many errors and didn't create enough.
"Teams down the bottom will always make life difficult for you if you don't get it right yourself and that's what happened.
"But there is still a long way to go and we are still chasing hard."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.