Newcastle United maintained their charge towards the Premier League thanks to Andy Carroll's 16th goal of the season as they won 1-0 at Doncaster Rovers.
But they were pushed all the way by a slick-passing Doncaster side that deserved to take something from the game.
Newcastle produced patches of skilful play but Doncaster were the better side by far in the first half.
Town defender Tamas Kadar was lucky not to be shown a card of some description when he brought down Billy Sharp who was clean through in the 17th minute.
Sharp had Steve Harper at full stretch to parry a low left-foot shot four minutes later and, when James Hayter followed up, his effort was cleared off the line.
Hayter created a superb opening himself with a right-wing cross in the 31st minute but Dean Shiels missed the ball completely and Sharp fired tamely into the keeper's hands.
Newcastle's only first-half effort of note came from Carroll a minute later.
He looked offside when put through by Wayne Routledge but the linesman's flag stayed down and home keeper Neil Sullivan had to pull off a fine save.
Rovers continued to dictate the pace at the start of the second half with Martin Woods having a low 25-yard free-kick saved by Harper in the 53rd minute.
But it was the Geordie table-toppers who made the breakthrough against the run of play six minutes later.
Midfielder Mark Wilson gave the ball away to Routledge. Carroll still had some work to do when latching onto his pass but jinked his way through before slotting the ball home from ten yards.
Doncaster were unlucky to have an effort disallowed in the 63rd minute when Sharp netted the rebound after a shot from Woods had been parried but he was ruled offside.
Newcastle defended solidly with Joey Barton making his comeback as a substitute when he replaced Danny Guthrie in the 75th minute and Doncaster were unable to battle back despite a late header from Shelton Martis that was saved by Harper.