Antoine Sibierski's goal saw off Portsmouth to end Newcastle's run of nine Premiership games without a win.
Sibierski scored his first Premiership goal of the season
The home side were on top from the start and were unfortunate to see Obafemi Martins' first-half goal ruled out for a marginal offside decision.
Newcastle saw more chances go astray before Charles N'Zogbia crossed for substitute Sibierski to slot home.
Portsmouth offered little going forward and only some fine saves from David James stopped the Magpies adding more.
The win was still a welcome one for Newcastle boss Glenn Roeder as, for all his side's heroics in the Uefa Cup, their domestic form had been a serious cause for concern.
This was their first victory on home turf in the league since the opening day of the season - and Sibierski's goal was only their ninth in 14 top-flight games.
They were never going to get it all their own way here either.
Pompey had lost their last three Premiersjip matches on the road and it was clear they had come to St James' Park to frustrate their hosts.
Nwankwo Kanu had a shot cleared off the line by Nolberto Solano in the opening minutes but after that it was one-way traffic in the opposite direction.
Martins thought he had given the Magpies the lead when he latched on to Kieron Dyer's threaded through-ball and coolly chipped James - but the linesman's flag denied him.
James made his first significant stop soon after, tipping over after Linvoy Primus cleared James Milner's cross against Pedro Mendes to send the ball spinning goalwards.
Roeder has had a crippling injury list to contend with and the last thing he needed was for Milner and Scott Parker to be forced off.
But Sibierski came off the bench and proved to be his side's saviour, finishing emphatically after good work from Martins and N'Zogbia.
That should have been the cue for Portsmouth to come out of their shell - but the visitors were unable to respond.
And they were grateful to James as Newcastle attacked with confidence in the closing stages.
The veteran shot-stopper - sporting a slick new hairstyle - came out quickly to deny Dyer then recovered to keep out Sibierski's follow-up shot from distance.
And the Pompey keeper was at his best again soon after to tip Emre's shot round the post.
James saved his best moment for last, somehow blocking Dyer's piledriver with his legs, but although he kept his side in the game they never looked capable of salvaging a point.
Newcastle boss Glenn Roeder:
"We have played well in the past and not picked up points.
"But the players knew it was only a matter of time before they played well and won a game.
"It is just a shame a couple of the other chances did not go in to give the scoreline a more realistic look."
Portsmouth manager Harry Redknapp:
"We did not play very well. To be honest, I could see a 0-0 draw coming.
"But look at their squad - you would not have said at the start of the season they would be where they are and we would be fourth with our squad."
Newcastle: Given, Solano, Taylor, Bramble, Ramage, Milner (Sibierski 45), Parker (Butt 24), Emre, N'Zogbia (Luque 90), Dyer, Martins.
Subs Not Used: Srnicek, Huntington.
Booked: Bramble, Solano.
Goals: Sibierski 69.
Portsmouth: James, Pamarot, Primus, Campbell, Stefanovic (Taylor 46), Thompson, Davis, Pedro Mendes (Kranjcar 71), O'Neil, Kanu, Mwaruwari (Douala 59).
Subs Not Used: Ashdown, O'Brien.
Booked: Thompson, Stefanovic.
Ref: M Halsey (Lancashire).