The Warwickshire right-hander battled early on the way to scoring 132 off 240 balls with 12 fours and a six as England reached 303 for six at stumps in reply to South Australia's 247 for seven declared with a day to play.
Australia had a second injury scare in as many days when South Australian tearaway Shaun Tait left the field four balls into his 20th over after pulling up sharply after a delivery on Saturday.
Tait, vying with Stuart Clark and Mitchell Johnson for the third pace bowling spot in next week's first Test, took 3-65 off 19.4 overs before he left the field about 25 minutes before stumps.
A team official said Tait, who was erratic with five wides and nine no-balls, was suffering from cramp.
But Tait's withdrawal caused some twitches in the Australian camp after fast-bowling all-rounder Shane Watson strained a hamstring in a domestic one-dayer Friday and is in doubt to play in Brisbane.
Bell's century followed his duck in his only other innings on the Australian tour and followed his less-than-convincing series haul of 171 runs at 17.10 in last year's Ashes series in England.
Bell, who will bat at No.3 against Australia following the elevation of Alastair Cook to Marcus Trescothick's opener vacancy, was forced to scrap early in his innings against Tait and former Test paceman Jason Gillespie.
Tait and Gillespie both claimed a wicket in the first 30 minutes of play.
Paul Collingwood, who will bat either four or five at the Gabba, also came good with 80, which ensured all of the tourists' six batsmen will enter the first Test with at least one half-century each on tour.
Bell and Collingwood shared a 178-run stand scored in just under three hours after they came together at 34 for three.
Kevin Pietersen batted well for 32 off 35 balls swotting five boundaries until he shouldered arms to Gillespie and was bowled.
Captain Andrew Flintoff was on six and wicketkeeper Geraint Jones on 14 at stumps.
Tait removed nightwatchman Matthew Hoggard and Gillespie had Alastair Cook, both caught behind, but Bell and Collingwood dug in during the first session before opening up in the second session as they took to South Australia's young spinners, Daniel Cullen and Cullen Bailey.
Collingwood was out for 80 caught behind, aiming for a big drive off legspinner Bailey, while Bell was caught in the gully off Tait's bowling.
England also received better news on the fitness of strike bowler Steve Harmison, who bowled sharply in the nets to allay fears he might miss the first Test because of a side strain.
Harmison withdrew from the match Friday when he woke experiencing tightness in his side, but he looks on the mend.
South Australia 247 for 7 decl (Darren Lehmann 99, C Borgas 73; Matthew Hoggard 3 for 40) Vs England 303 for 6 (Ian Bell 132, Paul Collingwood 80, Kevin Pietersen 32; Shaun Tait 3 for 65, Jason Gillespie 2 for 27)