Sam Allardyce's side were second best for much of the game and looked to be heading for defeat when Gaston Ramirez fired the hosts into a 59th-minute lead.
However, Carroll levelled the scores with a low, left-footed strike that hit both Adam Lallana and Steven Davis on its way to wrong-footing Southampton goalkeeper Artur Boruc.
The hosts made the brighter start to the game, but it was West Ham who had the first chance, when Kevin Nolan seized on a loose ball in the box after eight minutes and fired off a snapshot that Boruc did well to get down to save.
Southampton remained on top and threatened regularly as Rickie Lambert, Ramirez, Adam Lallana and Davis caused no end of trouble with their movement and pace.
Lallana had a fine chance on the half-hour mark, when Lambert squared the ball to him on the penalty spot, but his shot on the turn was blocked.
The best opportunity of the half then went to Lambert after a Ramirez free-kick on the right found him unmarked at the back post. However, having lunged to stab a shot goalwards, he was denied by a superb save from West Ham goalkeeper Jussi Jaaskelainen.
The Southampton top scorer again went close to making what would have been a deserved breakthrough on the stroke of half-time, but his glancing header from Jack Cork's right-wing cross sailed narrowly wide with Jaaskelainen well beaten.
Mauricio Pochettino's men continued to dictate the tempo after the break, but were lucky not to fall behind when Carroll hooked the ball narrowly wide after a mistake from Maya Yoshida.
The hosts finally took the lead in the 59th minute, though, thanks to a fine finish from Ramirez. After seizing on a loose clearance, the Uruguayan saw his first effort blocked, but the subsequent ricochet sent him clear through on goal and he expertly dispatched the ball past Jaaskelainen.
Southampton were buoyed and pushed forward in search of a second goal, but conceded on West Ham's next foray up the field. Mohamed Diame saw a powerful run halted by a foul from Jos Hooiveld 25 yards out, and Carroll converted the resulting free-kick via two deflections.
Carroll had a final chance to win the game when Hooiveld slipped while trying to clear a long ball forward, but the on-loan Liverpool forward saw his low shot well saved by Boruc.