A dominant Manchester City side wasted numerous chances but still picked up a 1-0 victory at Newcastle, securing an 18th consecutive league win and extending their lead at the top of the Premier League to 15 points.
Jonjo Shelvey tried a speculative shot from the halfway line from kick-off and from there, the Magpies appeared to park the bus as City peppered the Newcastle goal with shots, Sergio Aguero twice hitting the post and Kevin de Bruyne firing two shots in to the crowd.
Aguero also produced a spectacular save from home goalkeeper Rob Elliot as the Toon stopper brilliantly palmed the Argentine's header over, though Jacob Murphy was lucky to stay on the pitch after replays showed the challenge on Ilkay Gundogan beforehand was horrific and arguably warranted a straight red card.
The free scoring leaders did eventually get their reward, De Bruyne producing another stunning pass for Raheem Sterling to run onto, and the in-form England winger's first time shot crept under Rob Elliot and in off the post.
The opening goal appeared to cause the defensive minded hosts to loosen the handbrake, and they came dangerously close to equalising when a slip allowed Rolando Aarons in. The youngster chipped Ederson but an outstanding clearing header from Nicolas Otamendi not only denied a goal, but also stopped Newcastle striker Joselu nodding in from inches out.
Despite a dominant first half from the league leaders, City were dealt another defensive blow as captain Vincent Kompany's continuous calf injury returned and caused him to come off after just 10 minutes. Failure to complete yet another 90 minutes clearly frustrated the Belgian as he limped off the pitch after a promising run of starts.
Very little changed after half-time, and City should have increased their lead when a superb one-two saw Kevin De Bruyne in on goal, but the Belgian shocked everyone inside St James' Park and sliced his shot horribly wide.
City did eventually have the ball in the net after 65 minutes when Sergio Aguero tapped in a rebound after Kevin De Bruyne's long range effort hit the post, but it was rightly ruled out for offside as the runaway leaders continued to waste chance after chance.
After the tempo of the game calmed down, hearts were in City fans mouth as lacklustre passing saw Dwight Gayle being played in, but the Toon striker threw himself to the ground under Danilo's presence. Despite home fans appeals, referee Andre Mariner was quick to rule out a spot kick and correctly booked the Newcastle number nine for simulation.
That moment appeared to get the home side going as Newcastle had their best spell of pressure in the match as subs Christian Atsu and Gayle caused the City defence minor issues but it got the home faithful on their feet and behind their team for the first time in the game.
The emphatic visitors were almost made to pay with just two minutes of normal time left when the lively Dwight Gayle latched onto Christian Atsu's cross, but his header creeped just wide of Ederson's goal as City, who had 21 shots on goal and 80% possession were forced to cling on to their slender advantage.
Injury time proved to be a slow painful finish as City saw it out comfortably and ensured they took full advantage of Manchester United's Boxing Day draw with Burnley, extending their outrageous lead to 15 points. As for Newcastle, a fifth straight home loss leaves them 15th in the table ahead of Saturday's vital home game with Brighton.