The striker thumped home a header with three minutes remaining to clinch the trophy for Jose Mourinho’s men after Southampton had recovered from 2-0 down thanks to a brace of goals from Manolo Gabbiadini.
Southampton thought they had made the breakthrough in a thrilling encounter when Gabbiadini converted from close range after 11 minutes.
The striker was onside as he steered home a ball from Cedric Soares but Ryan Bertrand, although not interfering with play, had strayed offside and the flag went up — but the goal should have stood.
Southampton were making much of the early running but found themselves behind after 19 minutes when Ibrahimovic scored his first of the afternoon for United.
Oriol Romeu was booked for a challenge Ander Herrera, which gave United a free kick around 25 yards out — and up stepped Ibrahimovic to curl a shot over the wall and past Fraser Forster, who could perhaps have done better, for his 25th of the season.
Southampton responded and, on the half hour, almost levelled when Gabbiadini set up James Ward-Prowse, whose effort was pushed away by David De Gea.
But United seemed to have taken control of the final when they went 2-0 ahead through Jesse Lingard after 38 minutes.
Anthony Martial, Juan Mata and Marcos Rojo were all involved in the build-up before Lingard steered a low finish wide of Forster.
Southampton, though, were undaunted and grabbed a deserved lifeline seconds before the break as Gabbiadini prodded a Ward-Prowse cross into the net through the legs of De Gea.
And within four minutes of the start of the second half they were level, Gabbiadini producing an instinctive low finish after a Southampton corner had created havoc in the heart of the United defence.
Claude Puel’s side could have turned things around completely after 63 minutes when Romeu rose to meet another corner, only for his powerful header to crash back off the post with De Gea nowhere near it.
Ibrahimovic was denied by Forster as the second-half action swung from end to end, and popped up deep inside his own area to nod away a Jack Stephens header from close to his own line.
But the Swede was not to be denied and powered home a header to clinch the trophy from an outstanding Herrera cross after Southampton’s marking had let them down with extra time looming.