It was their third win in eight days and ended Bradford's four-match unbeaten run.
The Bantams, who lost striker Kai Bruenker to injury in the 14th minute, came closest to scoring in a scrappy first half when goalkeeper Mark Oxley dived full-length to turn away Callum Guy's 20-yard shot.
They also came close to breaking the deadlock in the 56th minute only to be denied by Oxley, who made two superb goalline saves after a free-kick from Tony McMahon caused problems for the visitors' defence.
First, he stopped a close-range header from Timothee Dieng and then blocked substitute Dominic Poleon's shot when the ball rebounded into the striker's path.
Southend went in front in the 72nd minute after home goalkeeper Colin Doyle made his first serious save of the match, diving to turn Sam Mantom's shot away for a corner.
Bradford did not properly clear the danger and, when Stephen McLaughlin returned the ball into the goalmouth, skipper John White headed the visitors into the lead.
Southend went further ahead in the 78th minute following a swift breakaway after a Bradford attack broke down.
Dru Yearwood raced to the edge of the home penalty area before playing the ball out to Marc-Antoine Fortune on the left and his right-foot shot hit defender Nat Knight-Percival before looping into the far corner of the net.