It did not need a Nostradamus to predict a clash between one of the most goal-shy teams in the Premier League and visitors yet to win a game away from home this season, was unlikely to provide a classic for our times.

So it proved.

Middlesbrough, who have played more games than they have scored goals this season, huffed and puffed with admirable diligence but if their New Year’s Resolution was to be more creative and dangerous in front of goal, they still wait for their wish to be granted.

Premier League champions Leicester City, who have successfully reached the last 16 of the Champions League, yet somehow failed to take all three points on their travels this season played some eye-catching football but entirely lacked a cutting edge.

Riyad Mahrez, Christian Fuchs and Adama Traore all clash for the ball (Getty)

How the Foxes missed the artful finishing of England striker Jamie Vardy, who sat out the last of his three-game suspension.

It wasn’t as if the game lacked chances - particularly in the second half when the match really opened up.

In the 54th minute for example, Riyad Mahrez drove a wonderful low cross all the way through the Boro six-yard box; seven minutes later George Friend returned the compliment in front of Kasper Schmeichel’s goal but on both occasions attackers were caught flat-footed.

Riyad Mahrez dances past Marten de Roon (Getty)

To be fair to both sides, they did not approach the game with a defensive mind-set.

Tinkerman Claudio Ranieri had made five changes to the side which beat West Ham 1-0 and altered his formation too.

Goalscorer from that encounter, Islam Slimani, was absent with a fever, while key midfielder Danny Drinkwater, recently back from injury, was not risked.

The supplier of the goal against the Hammers, Marc Albrighton had to be content with a place on the bench, as did fellow creative attacker Demarai Gray.

But the Leicester boss signalled positive intent by bringing in two strikers - Shinji Okazaki and Leonardo Ulloa - with Mahrez playing immediately behind them.

Boro also made five changes but manager Aitor Karanka’s were almost all to do with injury or suspension, including former Aston Villa keeper Brad Guzan replacing the injured Victor Valdes in goal.

One of those changes, Boro’s creative midfielder Gaston Ramirez, might have made an instant impact but he failed to control Fabio’s superb ball down the left-hand channel in the fourth minute as he surged into the box.

Ben Gibson is shown yellow by referee Robert Madley (g)

Four minutes later came the first real shot of the match, when Leicester left-back Christian Fuchs took advantage of good build-up play to drag a low shot across goal and wide of Guzan’s far post.

And so the pattern was set for a dogged, attritional first half with occasional chances for both sides but very little in the way of quality in front of goal produced by either.

The only real talking point up to the half-hour mark was a collision between former Boro centre-half Robert Huth and the mercurial Adama Traore with the attacker going down in the Leicester box claiming a penalty but referee Robert Madley quite rightly waving play on.

The game burst into life in the last few minutes of the opening 45 when a goalbound de Roon shot was blocked wide seconds before the tackle of the game from Fabio robbed Ulloa of possession in the box after he had been played in by Okazaki.

But it was left to the second-half to produce more urgency as both sides became more direct, again without being able to overly trouble the keepers.

Defender Robert Huth reacts to a missed Leicester chance (Getty)

Midway through the second-half there were excellent chances for Ulloa at one end and Negredo at the other in the space of couple of minutes.

That both chances were missed was entirely predictable. As was Ramirez missing a sitter late on.

For Leicester, Vardy’s return cannot come fast enough. For Boro, linked with a £6m move for Aston Villa striker Rudy Gestede, a dip into the January transfer market to improve their creativity and goal threat, looks a must.

After seeing his side come away with a point, Ranieri hailed the efforts of his players, saying: “The performance was a good one, with good spirit from my players. We got one point and a second clean sheet in a row - so that’s good, I’m happy.

“I wanted us to score a goal of course but we have conceded so many goals this season that it is not a bad thing to focus on defence and we have been solid and strong in the last few games.

“Against Middlesbrough earlier in the season, they won all the first and second balls and this time we more than held our own,“ he added. “In the game itself I was very pleased with Nampalys Mendy who has been out for some time with a bad ankle injury but is now one more player for us to call upon.

“And I was very pleased with Riyad Mahrez for the role he played behind the two strikers because I was sure he could do that job.”

Ranieri was pleased with his side's clean sheet, if disappointed not to win (Getty)

Aitor Karanka believed his side had the beating of the champions, and said: “I think it’s a good result for us. I am really pleased with the performance because we should remember that they are a team that won the league last season and are now playing in the Champions League and we were better than them.

“For us to play against them twice this season and be the better team on both occasions, that shows how far we have come. I was very pleased with this group of players because it was mentally a very tough defeat at Manchester United, to lose the game so late on.

“We may not be scoring too many goals right now but I don’t want to be critical of my players in any way when they are working so hard to do well. We have to focus on working hard and keep on going because last season we were in the Championship and this is a big step up for us.

“If we keep creating chances, we have to expect we will get goals.”

Leicester City (4-3-1-2): 1 Schmeichel; 17 Simpson 5 Morgan 6 Huth 28 Fuchs; 10 King 24 Mendy, 13 Amartey; 26 Mahrez (Musa, 71); 20 Okazaki (Gray 74), 23 Ulloa. Substitutes: Zieler, Hernandez, Chilwell, Albrighton, Wasilewski.

Middlesbrough (4-3-3): 12 Guzan; 17 Barragan (Friend, 34), 25 Chambers, 6 Gibson, 2 Fabio; 8 Clayton, 14 de Roon, 34 Forshaw (Leadbitter, 90); 37 Traore (sub Downing, 80), 21 Ramirez, 10 Negredo. Substitutes: Konstantopoulous, Bernardo, Rhodes, Stuani.