England were all out for 398 and Bell's innings, which included four fours from 105 balls, helped seize the initiative from West Indies, who had the hosts wobbling when they dismissed Stuart Broad early in Saturday's afternoon session.
Shannon Gabriel picked up his first Test wickets to finish with 3-60, while Kemar Roach claimed 3-87, including the wicket of England captain and top scorer Andrew Strauss, dismissed for 122 having added just a single to his overnight score.
England began Saturday's morning session on 259-3, but as the batsmen looked to accelerate, their risky approach handed West Indies a way back into the game.
Strauss fell in the fourth over of the day, the 84th, when he got an inside edge to a delivery from Roach and was caught behind.
Strauss was given not out by umpire Marais Erasmus, but the West Indies asked for a referral that confirmed he had nicked the ball.
Debutant Jonny Bairstow got off the mark with a panicky single, then hit two classy boundaries off his legs before breaking his bat.
Bairstow later drove Roach elegantly through cover, only to fall lbw to Roach's next ball, out for 16 after a brief but encouraging cameo.
Matt Prior opened his innings with a violent drive for four but he was clean bowled by Gabriel for 19 in the 97th over.
Tim Bresnan was caught behind for a duck off West Indies captain Darren Sammy in the following over.
West Indies would have been happy to have reduced England to 341-7 at lunch and happier still when Broad fell to the third ball of the afternoon session.
Fidel Edwards whipped a delivery between Broad's bat and pad, clipping the bail to bowl him for 10, but Bell and Graeme Swann launched a blistering counterattack and the momentum shifted behind England again.
Bell reached his 50 from 94 balls when he pushed Roach through point. The duo put on 50 from 42 balls before Swann was bowled off his pad by Gabriel for a quickfire 30.
The innings ended when Bell holed out to Gabriel and was caught at deep square leg by Kieran Powell.