Southampton, who were hammered 9-0 at Manchester United in midweek, found themselves 2-0 down after 25 minutes with Joe Willock netting on his Newcastle debut and the hapless Jan Bednarek scoring an own goal.
Takumi Minamino, also on his debut, replied for Southampton with a superb finish, but just before halftime the visitors self-destructed in defence again to allow Miguel Almiron to send the hosts in with a 3-1 lead.
A sensational free kick by James Ward-Prowse three minutes into the second half gave Southampton impetus, and Newcastle went down to 10 men two minutes later when Jeff Hendrick was sent off.
As the sleet came down, Newcastle were reduced to nine men when defender Fabian Schar suffered an injury and had to be carried off on a stretcher with the hosts having already used up all their substitutions.
Danny Ings hit the post for Southampton as they camped in Newcastle's half.
But Steve Bruce's side hung on to give themselves a healthy buffer above the relegation zone. Newcastle have 25 points from 23 games, with Southampton on 29 from 22 after five league defeats in a row.