Jay Rodriguez gave Saints the lead late in the first half with a neat half-volley before Nathan Redmond struck just before the hour, but the visitors missed the chance to put a third past the relegated Teessiders when Shane Long fluffed his penalty.
Boro then grabbed a lifeline when Patrick Bamford struck his first goal since April 2015 in the 72nd minute, but Steve Agnew's Championship-bound charges could not push on as Southampton claimed three valuable points in their race for a top-10 finish.
The first half proved scrappy as both sides failed to get past second gear, but the deadlock was broken in impressive fashion three minutes before the break when Long curled a cross into the path of Rodriguez, who lashed a half-volley past Brad Guzan.
Saints then grabbed their second in the 57th minute, Redmond making the most of Fabio being dragged out of position to stroll into the area, cut inside, and fire the ball into the top corner of the net.
Many Boro fans felt that they had seen enough at that point and many decided to head for the Riverside exits and, when Guzan was penalised for upending Long in the area to gift Southampton a penalty, many of them called on referee Anthony Taylor to send their own player off.
The American stopper stayed on the pitch, however, and Long failed from 12 yards out, dragging his spot kick over the bar via the woodwork.
In the 72nd minute, the home faithful were given something to smile about when Bamford converted Viktor Fischer's powerful, pinpoint corner by nudging the ball into the net, which prompted wild celebrations from the ex-Chelsea man, who was off the mark for the first time in two years.
Middlesbrough failed to kick on, however, as Calum Chambers's late drive was kept out by Fraser Forster, while Saints had even more reason to smile as Charlie Austin came off the substitutes' bench to make his first appearance since December after injury.