Zat Knight's own goal gave Sunderland a late winner that guarantees their top-flight status for another season.
After Daniel Sturridge's shot hit the bar, Boudewijn Zenden raced clear to put Sunderland ahead before half-time.
Sturridge missed further chances to score for Bolton before substitute Ivan Klasnic headed in with only three minutes left to draw the hosts level.
But Sulley Muntari ran through to send in a goalbound shot that a sliding Knight could only help over the line.
Although it looked in doubt when the Trotters snatched a late equaliser, the visitors' win was testament to their determination, discipline and hunger as they overcame a side that had won their last five home matches.
Sunderland may also have had a little luck, with their first goal coming after a passage of play when Bolton could have been awarded a free-kick for handball. And the visitors also needed heroics from Phil Bardsley, who threw himself in the way of three goalbound efforts.
Bruce delighted to stay in top flight
While the game was short on fluency and creativity, there was plenty of endeavour on display - and it was the Black Cats' battling qualities that brought them only their second win in 12 league games.
Bolton, already safe in mid-table, might have been the perfect opposition for Sunderland but the hosts did not simply roll over.
On-loan Chelsea forward Sturridge was lively throughout for the Trotters, and on a different day would surely have scored at least once.
But there was still a sense that Bolton have yet to fully shake off that crushing 5-0 FA Cup semi-final defeat by Stoke on 17 April as they succumbed to their third consecutive defeat.
The hosts' confidence might have been boosted had Sunderland goalkeeper Simon Mignolet not blocked Matthew Taylor's low shot early on.
Instead, it was the Black Cats who begun to thrive and they should have taken the lead when Jordan Henderson's free-kick from the left picked out Bardsley but he sent his header off target from an unmarked position at the near post.
Bolton hit back, though, and Sturridge had two chances to continue his rich vein of goalscoring form.
But in the first his shot was blocked by John Mensah and in the second his effort was deflected on to the bar by Bardsley, who performed heroics in the second half when he flung his body in the way of another effort the striker.
Just as the first period was coming to a close, Sturridge was again denied by excellent defending, this time Anton Ferdinand preventing him scoring from a rebound after Mignolet had spilled Matthew Taylor's shot.
We could have won two or three games with the chances we had but then get caught by a sucker punch
Bolton manager Owen Coyle
And seconds later, Sunderland earned huge reward for their brave resistance when Zenden was put clean through on the counter attack and he waltzed past keeper Jussi Jaaskelainen to slot into an empty net.
It might not have been unreasonable to expect an injury-ravaged visiting side to come out after the break and not take any risks.
Stephane Sessegnon and Zenden seemed to have other ideas and the pair quickly forced Jaaskelainen into a decent stop and then Johan Elmander into a block.
At that point, the Black Cats - even without the likes of latest injury victims Lee Cattermole and Kieran Richardson - looked comfortable.
But when Bolton stepped up a gear it took a superb piece of defending from Bardsley to block Sturridge's goalbound effort and the rebound was sent over by Lee Chung-Yong.
Soon after substitute Rodrigo Moreno stung the hands of Mignolet with a fizzing drive that the keeper could only parry.
The signs of a Trotters recovery were there and the hosts got their equaliser when Moreno sent over a teasing cross for fellow substitute Klasnic to finish off with a downward header.
With only three minutes left, it seemed Sunderland had had two points taken away from them - and it looked like they might endure worse when Davies' shot looked set to make it 2-1 to Bolton only for Bardsley to somehow clear with his head.
But, incredibly, in stoppage time Black Cats boss Steve Bruce saw his side snatch all three points when Muntari latched on to a through ball from Sessegnon and the substitute's shot was dragged over the line by Knight as he tried to clear.
POST-MATCH REACTION
Sunderland boss Steve Bruce:
"It is good to be safe now. That was the one thing we had to address when I arrived. The year I came here we stayed up on goal difference.
"We had to stop being a yo-yo club. We have had four years in the Premier League now and the next step is the most difficult one. That is trying to take the club forward and getting into the top 10."
Bolton manager Owen Coyle:
"We had clear-cut chances to get in front before half time but we never took them and truth be told we felt aggrieved to come in 1-0 down.
"We had more chances in the second half, again gilt-edged chances, to get the equaliser and then chances to win it.
"They defended with their lives and worked their socks off. We could have won two or three games with the chances we had but then get caught by a sucker punch. Not to get three points from this game is very disappointing."
90:00+5:16 The referee blows for the end of the match.
Full Time
90:00+5:12 Shot by Sulley Muntari (Sunderland) left-footed from left side of six-yard box (6 yards), save (blocked) by Jussi Jaaskelainen
(Bolton).
Correction - 90:00+2:46 Assist on the goal came from Sulley Muntari.
90:00+2:46 Sulley Muntari provided the assist for the goal.
90:00+2:46 GOAL - Sulley Muntari:Bolton 1 - 2 Sunderland Goal by Sulley Muntari (Sunderland) left-footed (low centre of goal) from left side of penalty area (12 yards).Bolton 1-2
Sunderland.
90:00+1:05 Handball by Stephane Sessegnon (Sunderland). Free kick taken right-footed by Jussi Jaaskelainen (Bolton) from own half, resulting
in open play. Shot by Kevin Davies (Bolton) volleyed right-footed from centre of penalty area (12 yards), blocked by Phillip
Bardsley (Sunderland). Outswinging corner from left by-line taken left-footed by Rodrigo Moreno (Bolton) to far post, resulting
in open play. Foul by Rodrigo Moreno (Bolton) on Jack Colback (Sunderland). Free kick taken right-footed by Simon Mignolet
(Sunderland) from own half, resulting in open play.
90:00+0:23 Defending throw-in by Paul Robinson (Bolton).
89:45 Foul by Zat Knight (Bolton) on Boudewijn Zenden (Sunderland). Free kick taken right-footed by Phillip Bardsley (Sunderland)
from own half, resulting in open play.
87:55 Foul by Stephane Sessegnon (Sunderland) on Zat Knight (Bolton). Free kick taken right-footed by Jussi Jaaskelainen (Bolton)
from own half, resulting in open play.
86:53 Cross by Rodrigo Moreno (Bolton),
86:48 Assist (cross) by Rodrigo Moreno (Bolton) from left wing.
86:48 GOAL - Ivan Klasnic:Bolton 1 - 1 Sunderland headed goal by Ivan Klasnic (Bolton) (bottom-left of goal) from right side of six-yard box (6 yards).Bolton 1-1 Sunderland.
85:38 Foul by Kevin Davies (Bolton) on Jack Colback (Sunderland). Free kick taken right-footed by Simon Mignolet (Sunderland) from
own half, resulting in open play.
83:59 Foul by Kevin Davies (Bolton) on Boudewijn Zenden (Sunderland). Free kick taken right-footed by John Mensah (Sunderland) from
right channel, resulting in open play. Goal kick taken long by Jussi Jaaskelainen (Bolton).
83:52 Defending throw-in by Paul Robinson (Bolton).
83:31 Attacking throw-in by Nedum Onuoha (Sunderland).
83:06 Cross by Johan Elmander (Bolton), resulting in ball out of play. Goal kick taken long by Simon Mignolet (Sunderland).
82:23 Goal kick taken long by Jussi Jaaskelainen (Bolton).
81:20 Attacking throw-in by Nedum Onuoha (Sunderland).
79:44 Inswinging corner from right by-line taken left-footed by Rodrigo Moreno (Bolton) to far post, resulting in open play.
79:28 Shot by Rodrigo Moreno (Bolton) drilled left-footed from right channel (20 yards), save (parried) by Simon Mignolet (Sunderland).
Attacking throw-in by Gretar Rafn Steinsson (Bolton).
78:32 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
78:16 Defending throw-in by Phillip Bardsley (Sunderland).
77:46 Defending throw-in by Phillip Bardsley (Sunderland).
77:27 Defending throw-in by Gretar Rafn Steinsson (Bolton).
77:16 Attacking throw-in by Phillip Bardsley (Sunderland).
76:44 Defending throw-in by Rodrigo Moreno (Bolton).
75:17 Foul by Nedum Onuoha (Sunderland) on Gary Cahill (Bolton). Free kick taken right-footed by Jussi Jaaskelainen (Bolton) from
own half, resulting in open play.
75:17 Substitution Bolton substitution: Chung-Yong Lee replaced by Rodrigo Moreno (tactical).
75:09 Substitution Bolton substitution: Matthew Taylor replaced by Ivan Klasnic (tactical).
72:59 Foul by Paul Robinson (Bolton) on Ahmed Elmohamady (Sunderland). Free kick taken left-footed by Boudewijn Zenden (Sunderland)
from right wing, passed. Cross by Jordan Henderson (Sunderland), clearance by Gary Cahill (Bolton). Outswinging corner from
left by-line taken left-footed by Boudewijn Zenden (Sunderland) to centre,
72:01 Foul by Daniel Sturridge (Bolton) on Jack Colback (Sunderland). Free kick taken right-footed by John Mensah (Sunderland) from
own half, resulting in open play.
71:32 Attacking throw-in by Nedum Onuoha (Sunderland).
70:46 Goal kick taken long by Jussi Jaaskelainen (Bolton).
70:37 Attacking throw-in by Phillip Bardsley (Sunderland).
68:56 Attacking throw-in by Nedum Onuoha (Sunderland).
68:07 Header by Matthew Taylor (Bolton) from right side of penalty area (12 yards), missed right. Goal kick taken long by Simon
Mignolet (Sunderland).
66:56 Defending throw-in by Nedum Onuoha (Sunderland).
65:33 Shot by Daniel Sturridge (Bolton) left-footed from centre of penalty area (12 yards), save (parried) by Simon Mignolet (Sunderland).
Shot by Chung-Yong Lee (Bolton) right-footed from right side of six-yard box (6 yards), over the bar. Goal kick taken long
by Simon Mignolet (Sunderland).
63:32 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
63:19 Goal kick taken long by Jussi Jaaskelainen (Bolton).
61:55 Inswinging corner from right by-line taken left-footed by Boudewijn Zenden (Sunderland) to far post, save (punched) by Jussi
Jaaskelainen (Bolton).
61:36 Attacking throw-in by Nedum Onuoha (Sunderland).
61:22 Attacking throw-in by Nedum Onuoha (Sunderland).
60:50 Goal kick taken long by Simon Mignolet (Sunderland).
60:25 Goal kick taken long by Jussi Jaaskelainen (Bolton).
59:43 Defending throw-in by Nedum Onuoha (Sunderland).
58:16 Foul by John Mensah (Sunderland) on Kevin Davies (Bolton). Free kick crossed right-footed by Chung-Yong Lee (Bolton) from
left wing, save (punched) by Simon Mignolet (Sunderland). Goal kick taken long by Simon Mignolet (Sunderland).
57:33 Defending throw-in by Phillip Bardsley (Sunderland).
57:07 Goal kick taken long by Simon Mignolet (Sunderland).
55:40 Free kick taken left-footed by Boudewijn Zenden (Sunderland) from right channel (25 yards), blocked by Johan Elmander (Bolton).
Foul by Nedum Onuoha (Sunderland) on Daniel Sturridge (Bolton). Free kick taken right-footed by Johan Elmander (Bolton) from
own half, passed. Shot by Matthew Taylor (Bolton) right-footed from right side of penalty area (12 yards), over the bar.
55:40 Booking Kevin Davies (Bolton) booked for unsporting behaviour.
55:33 Foul by Kevin Davies (Bolton) on Nedum Onuoha (Sunderland).
54:26 Attacking throw-in by Matthew Taylor (Bolton).
54:13 Attacking throw-in by Matthew Taylor (Bolton).
53:35 Foul by Jordan Henderson (Sunderland) on Paul Robinson (Bolton). Free kick crossed left-footed by Paul Robinson (Bolton) from
left wing, clearance by Anton Ferdinand (Sunderland).
53:09 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
52:53 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
52:35 Attacking throw-in by Matthew Taylor (Bolton).
52:19 Defending throw-in by Paul Robinson (Bolton).
51:12 Attacking throw-in by Matthew Taylor (Bolton).
50:28 Shot by Daniel Sturridge (Bolton) drilled left-footed from right side of penalty area (18 yards), missed left. Goal kick taken
long by Simon Mignolet (Sunderland).
48:58 Attacking throw-in by Johan Elmander (Bolton).
48:40 Defending throw-in by Paul Robinson (Bolton).
47:46 Foul by Jack Colback (Sunderland) on Daniel Sturridge (Bolton). Free kick crossed right-footed by Gretar Rafn Steinsson (Bolton)
from right wing, resulting in ball out of play. Goal kick taken long by Simon Mignolet (Sunderland).
47:17 Defending throw-in by Gretar Rafn Steinsson (Bolton).
47:04 Attacking throw-in by Phillip Bardsley (Sunderland).
46:22 Shot by Stephane Sessegnon (Sunderland) right-footed from right channel (25 yards), save (parried) by Jussi Jaaskelainen (Bolton).
45:31 Chung-Yong Lee (Bolton) caught offside. Free kick taken right-footed by Simon Mignolet (Sunderland) from own half, resulting
in open play.
Correction - 45:00+0:42 The assist for the goal came from Stephane Sessegnon.
45:00+0:42 Assist (pass) by Stephane Sessegnon (Sunderland) from own half.
45:00+0:42 GOAL - Boudewijn Zenden:Bolton 0 - 1 Sunderland Goal by Boudewijn Zenden (Sunderland) right-footed (bottom-right of goal) from right side of six-yard box (6 yards).Bolton
0-1 Sunderland.
44:59 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
44:28 Shot by Matthew Taylor (Bolton) drilled left-footed from left channel (25 yards), save (fumbled) by Simon Mignolet (Sunderland).
43:44 Attacking throw-in by Paul Robinson (Bolton).
42:56 Defending throw-in by Nedum Onuoha (Sunderland). Defending throw-in by Paul Robinson (Bolton).
41:32 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
40:52 Defending throw-in by Nedum Onuoha (Sunderland).
40:09 Shot by Boudewijn Zenden (Sunderland) left-footed from left channel (20 yards), blocked by Gretar Rafn Steinsson (Bolton).
39:44 Attacking throw-in by Nedum Onuoha (Sunderland).
38:36 Header by Johan Elmander (Bolton) from left side of six-yard box (6 yards), over the bar.
Correction - 37:18 Inswinging corner taken from the left by-line by Chung-Yong Lee, Chung-Yong Lee takes a shot. Corner taken right-footed by
Chung-Yong Lee, save by Simon Mignolet. Daniel Sturridge takes a shot. Inswinging corner taken by Matthew Taylor. John Mensah
makes a clearance.
37:18 Inswinging corner from left by-line taken right-footed by Chung-Yong Lee (Bolton) to far post, shot by Chung-Yong Lee (Bolton)
right-footed from left side of penalty area (12 yards), inswinging corner from left by-line taken right-footed by Chung-Yong
Lee (Bolton) to centre, save (punched) by Simon Mignolet (Sunderland). Shot by Daniel Sturridge (Bolton) left-footed from
right channel (18 yards), inswinging corner from right by-line taken left-footed by Matthew Taylor (Bolton) to centre, resulting
in ball out of play. Clearance by John Mensah (Sunderland).
37:03 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
36:50 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
36:42 Attacking throw-in by Chung-Yong Lee (Bolton).
35:39 Defending throw-in by Gretar Rafn Steinsson (Bolton).
35:17 Attacking throw-in by Phillip Bardsley (Sunderland).
34:15 Shot by Daniel Sturridge (Bolton) left-footed from left channel (25 yards), missed right. Goal kick taken long by Simon Mignolet
(Sunderland).
33:29 Shot by Phillip Bardsley (Sunderland) mishit right-footed from centre of penalty area (18 yards), missed right. Defending
throw-in by Paul Robinson (Bolton).
32:49 Foul by Kevin Davies (Bolton) on Anton Ferdinand (Sunderland). Free kick taken right-footed by Simon Mignolet (Sunderland)
from own half, resulting in open play.
32:26 Foul by Ahmed Elmohamady (Sunderland) on Paul Robinson (Bolton). Free kick taken right-footed by Paul Robinson (Bolton) from
own half, passed.
31:48 Defending throw-in by Phillip Bardsley (Sunderland).
30:27 Defending throw-in by Gretar Rafn Steinsson (Bolton).
29:36 Jordan Henderson (Sunderland) caught offside. Free kick taken right-footed by Jussi Jaaskelainen (Bolton) from own half, passed.
28:35 Defending throw-in by Paul Robinson (Bolton).
27:58 Goal kick taken long by Simon Mignolet (Sunderland).
27:07 Shot by Jack Colback (Sunderland) left-footed from left side of penalty area (12 yards), save (caught) by Jussi Jaaskelainen
(Bolton).
26:19 Defending throw-in by Boudewijn Zenden (Sunderland).
25:51 Shot by Daniel Sturridge (Bolton) volleyed left-footed from left side of penalty area (12 yards), attacking throw-in by Paul
Robinson (Bolton). Blocked by John Mensah (Sunderland).
25:03 Goal kick taken short by Jussi Jaaskelainen (Bolton).
24:20 Inswinging corner from right by-line taken left-footed by Boudewijn Zenden (Sunderland) to centre, clearance by Kevin Davies
(Bolton).
22:42 Foul by Zat Knight (Bolton) on Stephane Sessegnon (Sunderland). Free kick taken right-footed by Jordan Henderson (Sunderland)
from right wing, header by Phillip Bardsley (Sunderland) from right side of six-yard box (6 yards), over the bar. Goal kick
taken short by Jussi Jaaskelainen (Bolton).
22:03 Attacking throw-in by Ahmed Elmohamady (Sunderland).
20:08 Foul by Nedum Onuoha (Sunderland) on Matthew Taylor (Bolton). Free kick drilled right-footed by Johan Elmander (Bolton) from
right channel (25 yards), missed left. Goal kick taken long by Simon Mignolet (Sunderland).
19:07 Cross by Nedum Onuoha (Sunderland), blocked by Paul Robinson (Bolton). Attacking throw-in by Nedum Onuoha (Sunderland).
18:48 Attacking throw-in by Nedum Onuoha (Sunderland).
18:07 Foul by Zat Knight (Bolton) on Stephane Sessegnon (Sunderland). Free kick taken right-footed by Ahmed Elmohamady (Sunderland)
from own half, passed.
16:54 Attacking throw-in by Ahmed Elmohamady (Sunderland).
15:57 Foul by Stephane Sessegnon (Sunderland) on Paul Robinson (Bolton). Free kick taken right-footed by Jussi Jaaskelainen (Bolton)
from own half, resulting in open play.
14:42 Inswinging corner from right by-line taken left-footed by Boudewijn Zenden (Sunderland) to far post, resulting in ball out
of play. Goal kick taken long by Jussi Jaaskelainen (Bolton).
13:22 Defending throw-in by Phillip Bardsley (Sunderland).
12:20 Goal kick taken long by Jussi Jaaskelainen (Bolton).
11:16 Shot by Matthew Taylor (Bolton) volleyed right-footed from left channel (20 yards), missed right. Goal kick taken long by
Simon Mignolet (Sunderland).
11:08 Attacking throw-in by Paul Robinson (Bolton).
10:44 Shot by Matthew Taylor (Bolton) left-footed from left side of penalty area (12 yards), save (parried) by Simon Mignolet (Sunderland).
9:06 Foul by Paul Robinson (Bolton) on Jordan Henderson (Sunderland). Free kick crossed left-footed by Boudewijn Zenden (Sunderland)
from right wing, resulting in ball out of play. Goal kick taken long by Jussi Jaaskelainen (Bolton).
8:52 Attacking throw-in by Nedum Onuoha (Sunderland).
7:57 Foul by Kevin Davies (Bolton) on John Mensah (Sunderland). Free kick taken right-footed by Anton Ferdinand (Sunderland) from
own half, resulting in open play.
6:39 Foul by Johan Elmander (Bolton) on Boudewijn Zenden (Sunderland). Free kick drilled left-footed by Boudewijn Zenden (Sunderland)
from left channel (20 yards), missed left. Goal kick taken long by Jussi Jaaskelainen (Bolton).
6:19 Attacking throw-in by Ahmed Elmohamady (Sunderland).
5:10 Foul by Ahmed Elmohamady (Sunderland) on Paul Robinson (Bolton). Free kick taken right-footed by Jussi Jaaskelainen (Bolton)
from own half, resulting in open play.
4:40 Defending throw-in by Paul Robinson (Bolton).
3:41 Foul by Paul Robinson (Bolton) on Ahmed Elmohamady (Sunderland). Free kick crossed left-footed by Boudewijn Zenden (Sunderland)
from right wing, clearance by Gary Cahill (Bolton).
2:51 Defending throw-in by Nedum Onuoha (Sunderland).
2:39 Attacking throw-in by Gretar Rafn Steinsson (Bolton).
1:23 Inswinging corner from right by-line taken left-footed by Boudewijn Zenden (Sunderland) to near post, shot by Jack Colback
(Sunderland) volleyed left-footed from left channel (25 yards), missed right. Goal kick taken long by Jussi Jaaskelainen (Bolton).
1:08 Attacking throw-in by Ahmed Elmohamady (Sunderland).
0:32 Goal kick taken long by Jussi Jaaskelainen (Bolton).
0:25 Attacking throw-in by Ahmed Elmohamady (Sunderland).
0:18 Attacking throw-in by Jordan Henderson (Sunderland).
0:00 The referee gets the game underway.
Live text and data provided by The Press Association.
Bookmark with:
What are these?