Substitute Jason Puncheon cancelled out Phil Bardsley's opener to all but preserve Southampton's Premier League status and leave Sunderland in trouble.
Sunderland took the lead after half-time through a fierce deflected drive from Bardsley.
Saints hit back when Puncheon fired home at the second attempt.
They only need to avoid an improbable margin of defeat next week to stay up, while both clubs will be safe if Wigan lose to Arsenal on Tuesday.
Wigan have two games left - the other being at home to relegation rivals Aston Villa - and must win them both to avoid finishing in the bottom three.
If they do take maximum points, Sunderland would need a draw to be sure of staying up, with Aston Villa then filling the final relegation slot.
Southampton must only avoid a record defeat at home to Stoke to guarantee their Premier League status.
Dependent on defenders
Each of Sunderland's last three goals have come from defenders
Neither team arrived in a particularly rich vein of form and that seemed to result in a cagey opening half that featured few clear openings.
Southampton looked the more assured in possession - a mark of Mauricio Pochettino's impact as manager - but they lacked a cutting edge that may explain a return of just one goal in their previous four games.
Among Sunderland's problems this season has been an inability to hold on to the ball and build sustained pressure, which again proved the case as any threat they posed came almost entirely on the counter-attack.
It took 27 minutes for a attempt on goal, Alfred N'Diaye driving through midfield before a harmless shot from distance was blocked.
At the other end, Simon Mignolet gathered comfortably from Rickie Lambert and then reacted well to deny Jay Rodriguez.
Finally some life had been injected into a fairly dour encounter, but Sunderland's Adam Johnson summed up his campaign with a tame effort from close range, and Mignolet thwarted Lambert once more.
Di Canio responded by replacing James McClean with Connor Wickham at half-time, and his side certainly carried greater urgency after the interval.
Mignolet was alert to save two Rodriguez headers from Steven Davis corners, but Sunderland were otherwise on the front foot and their improvement was rewarded when Bardsley opened the scoring.
Johnson squeezed a pass to the right-hand side of the box, where Bardsley unleashed a fierce strike that flew in off Jos Hooiveld.
The Stadium of Light was now a cauldron of noise, but Pochettino responded by introducing Puncheon and James Ward-Prowse - and their impact was immediate.
Rodriguez and Lambert combined to free Ward-Prowse on the left and, although Puncheon's header from his cross was repelled by Mignolet, Puncheon managed to hook the rebound home while on the floor.
Lambert had a chance to snatch victory for the visitors, but his low drive was kept out by the brilliant Mignolet.
Sunderland manager Paolo Di Canio:
"Let me be sure that we are going to keep the club up, and then I am going to change everything. I am going to change everything.
"I'm not going to push all the players out, but I am going to keep the right players and bring in the right players if it is possible."
Southampton manager Mauricio Pochettino:
"When you make substitutions, you always want them to have an impact and today the two substitutions I made had an immediate impact.
"It was a centre from Ward-Prowse and Puncheon got the goal, so it was immediate.
"Yes, we are happy.
"The players have put in an amazing performance in the four months that I have been here."
- 22 Mignolet
- 02 Bardsley
- 16 O'Shea
- 24 Cuellar
- 03 Rose
- 04 N'Diaye
- 07 Larsson (Vaughan - 74' )
- 14 Colback
- 21 Johnson
- 23 McClean (Wickham - 46' )
- 09 Graham
- 20 Westwood
- 12 Kilgallon
- 29 Marrs
- 15 Vaughan
- 18 Mangane
- 10 Wickham
- 30 Mandron
- 31 Boruc
- 02 Clyne
- 05 Hooiveld
- 06 Fonte
- 23 Shaw Booked
- 04 Schneiderlin
- 08 S Davis
- 18 Cork (Ward-Prowse - 73' )
- 20 Lallana (Puncheon - 72' )
- 07 Lambert
- 09 Rodriguez Booked
- 01 K Davis
- 03 Yoshida
- 15 Forren
- 16 Ward-Prowse
- 33 De Ridder
- 42 Puncheon
- 24 Mayuka
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +2:46
A cross is delivered by Jose Fonte, Phil Bardsley manages to make a clearance.90:00 +1:53
Adam Johnson gives away a free kick for an unfair challenge on James Ward-Prowse. Jos Hooiveld takes the direct free kick.90:00 +1:12
Adam Johnson fouled by Morgan Schneiderlin, the ref awards a free kick. Direct free kick taken by Phil Bardsley.88:53
Free kick awarded for a foul by Jay Rodriguez on Danny Rose. Direct free kick taken by Simon Mignolet.87:33
Inswinging corner taken right-footed by Steven Davis from the left by-line.87:11
Steven Davis produces a drilled left-footed shot from 18 yards. Carlos Cuellar gets a block in.86:45
Rickie Lambert takes a shot. Save made by Simon Mignolet.86:17
Rickie Lambert takes a shot. Save made by Simon Mignolet.84:49
Jay Rodriguez sends in a cross, clearance made by Jack Colback.83:07
Steven Davis produces a left-footed shot from just outside the area that goes harmlessly over the target.82:36
Centre by Jason Puncheon, James Ward-Prowse takes a shot. John O'Shea gets a block in.81:38
Foul by Steven Davis on Simon Mignolet, free kick awarded. Simon Mignolet restarts play with the free kick.78:54
The ball is swung over by Luke Shaw, save by Simon Mignolet.78:35
Luke Shaw sends in a cross, Carlos Cuellar manages to make a clearance.78:22 Booking
Booking Luke Shaw goes into the book.76:37
Outswinging corner taken by James Ward-Prowse.75:20
The ball is sent over by James Ward-Prowse,75:08
Assist on the goal came from James Ward-Prowse.75:08 Goal scored
Goal! - Jason Puncheon - Sunderland 1 - 1 Southamp'n Jason Puncheon fires in a goal from inside the six-yard box to the top right corner of the goal. Sunderland 1-1 Southampton.
Jason Puncheon takes a shot. Save by Simon Mignolet.72:55
The ball is crossed by Adam Johnson.72:55 Substitution
Substitution David Vaughan comes on in place of Sebastian Larsson.72:55
Free kick awarded for a foul by Luke Shaw on Alfred N'Diaye.72:47
Centre by Connor Wickham, Jose Fonte makes a clearance.71:54 Substitution
Substitution James Ward-Prowse on for Jack Cork.71:54 Substitution
Substitution (Southampton) makes a substitution, with Jason Puncheon coming on for Adam Lallana.71:37 Booking
Booking Jay Rodriguez shown a yellow card.71:10
Phil Bardsley takes a shot. Blocked by Alfred N'Diaye.70:58
Centre by Phil Bardsley, Jose Fonte manages to make a clearance.70:21
Free kick awarded for an unfair challenge on Jack Colback by Jack Cork. Danny Rose restarts play with the free kick.67:24
The assist for the goal came from Adam Johnson.67:24 Goal scored
Goal! - Phil Bardsley - Sunderland 1 - 0 Southamp'n Phil Bardsley finds the net with a goal from the edge of the area to the top left corner of the goal. Sunderland 1-0 Southampton.67:18
Centre by Danny Rose, Jos Hooiveld manages to make a clearance.65:53
Luke Shaw fouled by Adam Johnson, the ref awards a free kick. Artur Boruc takes the direct free kick.63:22
The referee blows for offside against Steven Davis. Simon Mignolet restarts play with the free kick.61:47
A cross is delivered by Phil Bardsley.60:52
Danny Rose sends in a cross.60:23
Centre by Adam Johnson, Nathaniel Clyne manages to make a clearance.59:31
Inswinging corner taken by Sebastian Larsson, Artur Boruc makes a comfortable save.59:12
Jack Colback produces a cross, blocked by Nathaniel Clyne.58:26
The ball is delivered by Rickie Lambert.57:35
Corner taken right-footed by Steven Davis from the right by-line, Jay Rodriguez takes a shot. Save made by Simon Mignolet.57:13
Shot on goal by Jack Cork from just inside the area goes over the target.56:43
Outswinging corner taken right-footed by Steven Davis from the right by-line to the near post, clearance made by Phil Bardsley.53:22
Free kick awarded for a foul by Connor Wickham on Adam Lallana. The free kick is delivered right-footed by Steven Davis from right wing, clearance made by Danny Rose.52:03
Shot from just outside the penalty area by Rickie Lambert misses to the left of the target.51:43
Danny Rose crosses the ball, clearance by Luke Shaw.50:37
Outswinging corner taken right-footed by Steven Davis, Jos Hooiveld takes a shot. Save made by Simon Mignolet.50:13
Jay Rodriguez takes a shot. Carlos Cuellar gets a block in.48:36
Foul by Connor Wickham on Adam Lallana, free kick awarded. Jose Fonte takes the direct free kick.47:02
Free kick awarded for a foul by Danny Graham on Jose Fonte. Artur Boruc restarts play with the free kick.46:40
Luke Shaw produces a cross, comfortable save by Simon Mignolet.46:11
Jay Rodriguez gives away a free kick for an unfair challenge on Danny Rose. Direct free kick taken by Danny Rose.45:20
The assistant referee signals for offside against Danny Graham. Artur Boruc restarts play with the free kick.45:01
The referee starts the second half.45:01 Substitution
Substitution Connor Wickham replaces James McClean.45:00 +1:01 Half time
Half Time The match has reached half-time.44:58
Sebastian Larsson has an effort at goal from 18 yards. Blocked by Steven Davis.42:23
Luke Shaw delivers the ball.41:34
Rickie Lambert has an effort at goal from 12 yards. Comfortable save by Simon Mignolet.40:36
The ball is crossed by James McClean, clearance made by Jose Fonte.39:12
Corner from the right by-line taken by Sebastian Larsson, Adam Johnson takes a shot. Save made by Artur Boruc.38:56
A cross is delivered by Adam Johnson, Jose Fonte gets a block in.38:23
Inswinging corner taken by Adam Johnson from the right by-line played to the near post, Jack Cork manages to make a clearance.36:40
Luke Shaw gives away a free kick for an unfair challenge on Jack Colback. Simon Mignolet takes the direct free kick.35:36
Shot from just outside the penalty area by Adam Lallana misses to the left of the target.34:09
Free kick awarded for a foul by Rickie Lambert on Danny Rose. Free kick taken by Simon Mignolet.32:50
Foul by Jack Colback on Luke Shaw, free kick awarded. The free kick is delivered right-footed by Adam Lallana from left channel.31:51
Corner taken right-footed by Adam Lallana, comfortable save by Simon Mignolet.31:35
Corner taken right-footed by Adam Lallana.30:35
Inswinging corner taken right-footed by Adam Lallana, Jay Rodriguez takes a shot. Save by Simon Mignolet.27:55
Rickie Lambert takes a shot from 25 yards. Save by Simon Mignolet.26:30
Alfred N'Diaye takes a shot. Blocked by Jos Hooiveld.21:43
Unfair challenge on Jack Colback by Luke Shaw results in a free kick. Free kick crossed left-footed by Adam Johnson from right wing.20:47
Nathaniel Clyne delivers the ball, Carlos Cuellar makes a clearance.17:33
The ball is crossed by Luke Shaw, Phil Bardsley manages to make a clearance.16:44
Free kick awarded for a foul by Carlos Cuellar on Jay Rodriguez. The free kick is swung in right-footed by Adam Lallana, John O'Shea makes a clearance.13:56
Unfair challenge on Jay Rodriguez by Alfred N'Diaye results in a free kick. Jack Cork takes the direct free kick.12:47
The ball is delivered by Danny Rose, Jose Fonte manages to make a clearance.9:34
Outswinging corner taken from the right by-line by Adam Lallana, save by Simon Mignolet.8:13
Steven Davis challenges Alfred N'Diaye unfairly and gives away a free kick. Phil Bardsley takes the direct free kick.6:03
Foul by John O'Shea on Adam Lallana, free kick awarded. Free kick crossed by Adam Lallana.3:30
Corner taken right-footed by Adam Lallana from the left by-line, save made by Simon Mignolet.0:00
The referee gets the game started.
Live data and text provided by our data suppliers