If history favours those Championship teams topping the league over the Christmas period, then Cardiff should be confident of cementing their promotion chances in the new year. Having shaken off a shock defeat by bottom of the table Peterborough last week, Malky Mackay's side grabbed three points against promotion rivals Leicester City, taking their recent run to a single defeat in eight games.

In a contest between Leicester – boasting the league's best defence, with eight clean sheets – versus the top of the table and joint most-prolific scorers, Cardiff won out. Mackay's side may have haemorrhaged the highest number of away goals of any team in the top half of the table, but a paucity of chances and a dearth of resistance hardly dented their winning spirit.

In the opening 15 minutes, their goalkeeper David Marshall was forced into making consecutive saves – from a David Nugent strike and a Wes Morgan header, to Andy King hitting the post – before Jamie Vardy caught the rebound with a volley that rattled the crossbar. That last effort may have been offside but four shots in a matter of minutes should have worried Cardiff. It didn't.

In fact, 25 minutes of one-way traffic passed, without a single shot on target from the visitors. But when Cardiff's opportunity did come, they took it – and how. Craig Bellamy fired one into the back of the net, after fine work from Craig Conway. Nigel Pearson described it as a "sucker punch"; Mackay eulogised at the commitment of a 33-year-old who had scored Cardiff's 22nd away goal.

"The way he's closing people down in the last five minutes shows you the determination of the lad … he said a couple of weeks ago that this is the best group of lads he's played with, in terms of their team ethic," Mackay said. "He's enjoying being with them and that shows in our group at the moment, the lack of ego, and the willingness to work hard for each other; without that you don't win anything."

Leicester tried to respond: King ran half the length of the pitch, unopposed, only to see his effort curve just wide of the far post; and Vardy headed over the crossbar seconds before the half-time whistle.

After the break, Conway was forced into making a vital interception, clearing Nugent's effort off the line, and at the other end Bellamy played a lovely ball in to substitute Aron Gunnarsson but the Iceland international failed to convert.

Leicester's sense of frustration was tangible. Martyn Waghorn was brought off the bench, the striker having only just returned from having his appendix removed 10 days ago – his name on the team sheet because of his "hunger". But as the full-time whistle blew, the home side were left wanting, having taken just one win from the past five games, a statistic that will concern a side desperate to mount a promotion campaign.

Pearson maintained his side should have shared the points, after so many chances early on, and rued his players' habit of failing to exploit their momentum. "We've not really been able to translate dominance in games into a winning situation," the Leicester manager said.

"We've had spells but we've not maintained that. We must keep in contact with the sides in the automatic places. We're halfway through the season, we must make sure we're still nagging away at their heels and finish the season strongly."