England were 234 for five in their second innings, a lead of 202 runs, with Bell 105 not out and nightwatchman Tim Bresnan unbeaten on four.
They'd been in dire straits at 49 for three when Bell, who earlier in his Test career was criticised for not making runs when they were most needed, came to the crease following a treble strike by fast bowler Ryan Harris.
But a fourth-wicket partnership of 106 between Bell and Kevin Pietersen (44) checked Australia's advance.
Bell then added 66 with Jonny Bairstow (28) before the Yorkshireman was out shortly before stumps, caught behind off spinner Nathan Lyon.
Having twice made 109 in England's victories at Trent Bridge and Lord's that left them 2-0 up ahead of the drawn third Test at Old Trafford that saw them retain the Ashes, Bell's latest century gave the hosts hope of securing a win in this match that would see them take the five-match series outright.
Harris took three England top-order wickets for 18 runs in 24 balls.
He first bowled Joe Root (two) with a superb seaming delivery that clipped the top of off stump.
And, with conditions still overcast, he had England captain Alastair Cook, on 22, nicking a loose drive to wicketkeeper Brad Haddin.
Jonathan Trott then gloved Harris and was well caught down the legside by a leaping Haddin for 23.
Bell though late cut Peter Siddle for four and played an even finer variant of the same shot, also for a boundary, against all-rounder Shane Watson.
Pietersen ended the second session by cutting Siddle for four to leave England 123 for three at tea, with both their fourth-wicket batsmen 37 not out.
Bell then cover-drove Harris for four in textbook fashion and next ball another stylish boundary in the same region saw the 31-year-old Warwickshire right-hander to fifty in exactly 100 balls with five fours.
Australia found themselves a bowler down when Watson went off midway through his seventh over with a right hip/groin injury.
Lyon though had Pietersen caught off a leading edge by Chris Rogers at short extra-cover.
England were now 155 for four -- a lead of 123 runs -- but Bairstow kept Australia at bay for more than an hour.
After a brief interruption for bad light, Bell cover-drove Harris before the paceman, from around the wicket, had him fending at a steeply rising bouncer.
An unruffled Bell, who was admirably straight in defence, went into the 90s by off-driving Lyon down the ground for four.
Then a late cut two off Tasmania quick Jackson Bird just evaded Australia captain Michael Clarke at a wide slip before a single next ball saw Bell to his 20th hundred in 92 Tests, having faced 184 balls with 10 boundaries in just over four hours.
Earlier, England dismissed Australia for 270, the tourists held to a slender first innings lead of 32.
Australia resumed Sunday on 222 for five, with Rogers 101 not out following the 35-year-old left-handed opener's maiden Test hundred on Saturday, made in the face of excellent seam bowling from Stuart Broad, who finished the innings with five wickets for 71 runs.
Rogers had added just nine when, pushing forward defensively to off-spinner Graeme Swann, he was brilliantly caught off glove and pad for 110 by wicketkeeper Matt Prior, diving in front of the stumps.
Umpire Tony Hill originally ruled not out but England overturned his decision on review and Rogers, who batted for nearly six hours, was out having faced 225 balls with 14 fours.