He made his first-class debut for Northern Districts against a New Zealand Academy side on 9 March 1994, playing in the middle order and scoring 14 and 10. His next match saw him move up the order to open the batting, which became his favoured position, and he scored 43 and 60 against Wellington, who he would join in 1997.
His form attracted the attention of selectors, and he played for a New Zealand XI against the touring Zimbabweans in 1996, before representing the New Zealand Academy against the Zimbabweans six days later, where he scored 83.
He travelled to South Africa with the Academy side in the summer of 1997, scoring a half-century and an unbeaten 105 in the third and final four-day game against the South African Academy side.
In 1998, he represented New Zealand A against Zimbabwe, contributing 50 as the A side won by an innings. He then played against Pakistan, scoring 91, which earnt him a call up to the Test squad.
His early one-day career was less successful, but his breakthrough season came in 1997-8, his first for Wellington, in which he scored 611 runs at 43.64.
He made his One Day International debut for New Zealand against Zimbabwe in October, 1998, scoring 2 runs before scoring 16 in a match against Sri Lanka in Dhaka, Bangladesh.
He made his Test debut in the 2nd match against India at his home ground of Wellington, on 26 December 1998, taking the catch of Sachin Tendulkar in India's first innings before scoring 4 and 0. Despite his failure at the top of the order, New Zealand won by four wickets. He was retained for the third Test, scoring a two-ball duck in the first innings and a painstaking 25 in the second innings as he struggled against an experienced Indian bowling attack.
Despite only scoring 29 runs in four innings at an average of 7.25, he was included for the first Test against South Africa in Auckland in February, 1999. Batting down the order, he scored 6 as New Zealand replied to South Africa's 621 for six declared. Following on, he opened the batting, and again made six and was dropped after New Zealand held on to draw.
He did play in one One Day International against South Africa, scoring 37 but that was to be his only appearance in the side that year.
He returned to the Test side for New Zealand's tour of England later that year, scoring 83 in the third Test at Old Trafford.
He was selected for New Zealand's opening two Tests in India in 1999, but again failed to make a significant score. He was again dropped before returning to play against Pakistan in March, 2001. He scored 75 in the second Test, and 105 in the third Test as New Zealand warmed up for a series against Australia with an innings victory.
All three matches in the series were drawn but after Bell failed to score heavily, he was dropped once more.
He played a further four One Day Internationals against Sri Lanka in April, 2001, managing single figure scores in the first three games before hitting 66 in the fourth. Thereafter, he was not considered for one-day selection.
After being dropped from the New Zealand international set up, Bell returned to Wellington, and continued to score consistently in domestic competition. Having already established himself as an opening batsmen, in the 2003-04 season he scored 775 runs at an average of 45.58 and in 2005-06 he scored 645 at 46.07. He started the 2007-08 season by scoring a career-best 265 against Central Districts, and 188 not out against Canterbury.
Bell has always been stronger in the longer form of cricket, and his first-class record outweighs his List A record, with his best season coming in 2005-06, where he scored 203 runs at an average of 33.83. During his time with the Wellington Firebirds, they won the State Championship in 2000-2001 and 2003–04, and the State Shield in 2001-02.
In 2004-5, Bell was named in a New Zealand A squad to travel to South Africa. In five innings, he scored just 43 runs in three first-class games, although he enjoyed a far more successful one-day leg of the tour. In three games, he scored two half-centuries, averaging 35.00.
In January, 2008, after being out of the Test side for six years, he was called up to the squad to play the first Test against Bangladesh . He made a successful return in the first Test match scoring a personal best 107 in the first innings, took two catches, and remained not out on 20 as New Zealand won by nine wickets. He was picked to play in the next home test series for the Black Caps against England. In the first test he scored 19 and 0, and in the second test he scored 0 and 29.