Newcastle climbed back into the top four after coming from behind to beat lowly Southampton 3-1 at St Mary’s.