After enduring a nervy start in which Coventry created chances, Southampton took control of its fate with two goals in three minutes.
Billy Sharp stuck out a toe to turn Adam Lallana's volleyed shot past Joe Murphy in the 16th minute and moments later Jose Fonte's stooping header found the net to make it 2-0.
When Jos Hooiveld lashed in a third just before the hour mark and Lallana notched a fourth moments later, the party got under way.
The Saints return to the top flight after seven years in the lower leagues.
That meant West Ham United had to settle for third place even as a Carlton Cole brace sank Hull City 2-1 at Upton Park.
Cole headed in Matt Taylor's cross late in the first half, and then turned in Henri Lansbury's pass early in the second.
Corry Evans scored a header for Hull with nine minutes to go and Richard Garcia thought he had a late equaliser, but it was ruled out for offside
Cardiff City wrapped up the final playoff spot but made its fans sweat first before beating Crystal Palace 2-1.
It fell behind at Selhurst Park when Wilfried Zaha linked up with Darren Ambrose to score a fine goal on the break after 13 minutes.
Cardiff struggled to impose itself but Peter Whittingham scored a free-kick from a tight angle with his trusty left foot eight minutes into the second half and Don Cowie then volleyed in a second after the hour mark to turn it around.
Middlesbrough had needed Cardiff to drop points and to beat Watford but got neither as it went down 2-1 at Vicarage Road, where Troy Deeney snatched an 88th-minute winner moments after Marvin Emnes had cancelled out Chris Iwelumo's close-range finish.
Champion Reading fell to a 2-0 defeat at Birmingham City, substitute Adam Rooney firing in the opener after 24 minutes and Wade Elliott making sure with a 75th minute penalty after a handball by Jay Tabb.
The result meant only three points separated the Royals from third-placed West Ham at the season's finish.
The win lifts Birmingham into fourth above Blackpool, who were held 2-2 at Millwall.
Andy Keogh put the host team in front after 12 minutes but Ian Evatt headed Blackpool level quarter of an hour later, and Nouha Dicko grabbed the winner 20 minutes from time.
However, Harry Kane's 83rd-minute strike denied Blackpool fourth place.
Leicester City's season has not gone to plan, but it at least signed off with a win, beating Leeds United 2-1 at Elland Road.
Martin Waghorn put Leicester ahead late in the first half and although Danny Webber's 82nd minute strike looked to have earned the hosts a draw, Harry Panayiotou won it with almost the last kick of the game.
Rock-bottom Doncaster Rovers ended its spell in the Championship with a 3-1 defeat at home to Ipswich Town.
Tommy Smith headed the visitor in front after 10 minutes and Ryan Stevenson scored from range after half an hour, his shot striking the bar and bouncing back but only after crossing the line.
Fabien Robert pulled one back for Rovers but it was not enough to prevent a 26th defeat of the season as a Jason Scotland penalty 11 minutes from time gave Ipswich the breathing room it would need before Habib Beye's last-minute strike sent Rovers fans home with some consolation.
Portsmouth, which will join Doncaster in League One next season, lost 2-0 to Nottingham Forest which got a late brace from Dexter Blackstock, while there was a stalemate between Barnsley and Brighton & Hove Albion at Oakwell.
Danny Ings' 76th-minute strike looked like giving Burnley a 1-0 win over Bristol City but Ryan Taylor levelled five minutes later to earn a point.
Derby County and Peterborough United shared the spoils in a 1-1 draw, with David Ball's 82nd-minute goal cancelling out Theo Robinson's early opener.