Dutchman Georginio Wijnaldum, signed from PSV Eindhoven in the close-season, forced Martin Skrtel into an own goal in the 69th minute and then added a second himself in added time.
That gave Newcastle only a second home win of the season and took them above neighbours and relegation rivals Sunderland in the bottom three.
All that Liverpool could point to after a disappointing display was a wrongly-disallowed goal by full-back Alberto Moreno that would have brought them an equaliser 10 minutes from the end.
Juergen Klopp’s side remain seventh, six points behind the Champions League places, after only their second defeat in the 12 games since the German took took over from Brendan Rodgers in October.
“We were not good enough today,” Klopp told Sky Sports.
“I don’t know why. We could do better. We should play much more football, our pressing was not good. We were not compact, there was a lot of things we did not do well.”
Newcastle’s manager Steve McClaren, in contrast, was delighted with what he claimed was a victory for hard work — a quality the club’s supporters have accused their players of lacking recently.
“They do care, there is desire there but they’re young players, and they’ve got to learn,” he said.
“That’s what you’ve got to do to win a game in the Premier League, work really hard, and crawl back into the dressing-room.
“Now we’ve got to maintain that. They’ve just proved that the harder you work, the luckier you get.”
McClaren wanted his team to “get back to the basics of work-rate and organisation” and they did so to good effect in matching Liverpool’s pressing game.
With the home side content to sit back and Liverpool unable to break them down, the game took a long while to warm up and threatened to become the first goalless draw between the sides for 41 years.
The visitors made nothing of a crop of early corners and until Jordon Ibe swung one over in the 22nd minute there was not a sniff of a scoring chance.
Centre-half Dejan Lovren headed it down invitingly but Christian Benteke lifted the bouncing ball over the bar from barely three metres out.
Newcastle took the lead after 69 minutes when Moussa Sissoko’s cross was slightly mis-controlled by Wijnaldum but he still managed to fire in a shot that Skrtel deflected in.
Klopp had been dissatisfied enough to make a double change with an hour played, sending on Daniel Sturridge and fellow England international Adam Lallana for Benteke and the equally ineffective Roberto Firmino.
The two substitutes were involved in a rare scoring opportunity but Sturridge pulled his shot carelessly wide.
And Wijnaldum made sure of the points whe he clipped Sissoko’s perfect through ball over keeper Simon Mignolet.