After a two-week trial with Bolton Wanderers in the summer of 2004, Sam Allardyce secured the services of Ben Haim on a three-year deal for a fee believed to be in the region of £150,000.[2] Although Allardyce did not believe Ben Haim would be ready for the rigours of the Premier League immediately, he was confident that, given time, Ben Haim would have as big an impact on the English game as illustrious fellow countryman Eyal Berkovic.

His first season at the Reebok Stadium was a successful one as he made 27 appearances. On 1 February 2005, Ben Haim scored his first and only goal for Bolton, heading a free-kick from Stelios Giannakopoulos into the net in Bolton's 3–1 victory over Tottenham Hotspur.[3] This is his only goal in the Premier League to date. The only thing that hampered his campaign a little was a clash with Wayne Rooney in a league match when Rooney appeared to shove him in the face. Ben Haim, it was claimed, went down too easily and made too much of it and was charged with improper conduct by the Football Association, but was later cleared of charges.[4]

On 20 October 2005 while playing for Bolton in the UEFA Cup away at Beşiktaş, Ben Haim wore the captain's armband and was praised by the regular team captain Jay-Jay Okocha. In the second leg of the UEFA Cup Round of 32 against the French side Marseille which they drew 0–0 in the first leg, Ben Haim was the blame when he scored an own goal in the 69th minutes which turns out to be a winner for Marseille as the result was 2–1 on 23 February 2006.

Ben Haim's defensive displays in his following seasons at Bolton had attracted the interests of many clubs including Chelsea, West Ham United and Tottenham Hotspur. In January 2007, Chelsea confirmed that talks to sign Ben Haim from Bolton were unsuccessful.[5]

Following the end of the 2006–07 season, Ben Haim's contract with Bolton had expired and his future at Bolton was in doubt with media reports linking him with a move to Chelsea and Newcastle United, ex-Bolton boss Sam Allardyce admitting that he was ready to make an offer to his former charge to bring him to Newcastle.

His transfer from Maccabi to Bolton in July 2004 is one of those about which the Stevens inquiry report in June 2007 expressed concerns because of the apparent conflict of interest between agent Craig Allardyce, his father Sam Allardyce – the then manager at Bolton – and the club itself.

In June 2007, Chelsea officially announced the signing of Ben Haim on a Bosman transfer after he had passed his medical at Stamford Bridge and agreed on personal terms to join the club on a four-year deal. Ben-Haim told the Jewish Telegraph exclusively: "I am very happy to join one of the greatest clubs in the world. I needed a new challenge. I will play in any position Jose Mourinho wants me to play. I am looking forward to starting the new season with Champions League football." He made his competitive début for Chelsea against Manchester United in the FA Community Shield. With injuries to fellow Chelsea defenders John Terry and Ricardo Carvalho Ben Haim became a regular in the Chelsea first team. However, after the recovery of first team pairing Terry and Carvalho and the impressive form of Alex, Ben Haim found himself to be the fourth choice centre back.

In April 2008, he hit out at former Chelsea manager Avram Grant after Chelsea's 1–1 draw with Wigan Athletic stating: "If I knew Avram Grant was going to be the coach I would have signed for another club. It was Jose who brought me here and no one except he and I know the conversation we had when he tried to sign me the first time a year ago last January. The fact is while Jose was the coach I played most of the games and people who know me know that I would not have come here to be a reserve. I knew nothing good would come for me with Grant as Chelsea coach."[6] In a press conference, Avram Grant responded: "I don’t think José promised Ben Haim he will play before John Terry, Carvalho and Alex, It is internal business but, in my opinion, if a player was wrong we need to deal with it — in our way, my way."[7] Tal Ben Haim was fined two weeks wages, about £80,000.[7]

During Ben Haim's stay at Chelsea, he made 13 Premier League appearances, before transferring to Manchester City.

Ben Haim joined City on 30 July 2008 for a fee around £5 million, becoming only the second first-team signing of new manager Mark Hughes.[8]

He chose to wear the number 26 jersey, vacated by the transfer of Matthew Mills because, apart from his time at Chelsea where it was worn by John Terry, he had always worn that number at club level. After signing, Ben Haim said "I’m definitely going to give my best to City and give my heart in every game. I hope that we can do good things this season. I’m looking forward to starting the season here."[9] Ben Haim made his City debut in second leg of the UEFA Cup qualifier against EB/Streymur at Barnsley'sOakwell Stadium on 31 July where City won 2–0. Ben Haim eventually made his league debut for Manchester City which he received a booking as Manchester City lost to Aston Villa 4–2 on 17 August 2008. He failed to establish himself as a first team regular, which saw him left on the substitutes bench for a long period of the season. After returning to the club, following a loan spell at Sunderland, it was clear that he was surplus to requirements at the Etihad Stadium. He was then transfer listed.

Ben Haim signed for Sunderland on loan until the end of the 2008–09 season on 1 February 2009. He made his debut away to Arsenal on 21 February and made his home debut at the Stadium of Light on 7 March against Tottenham Hotspur. He again found it difficult to break into the side. Ben-Haim was limited to only 5 appearances in a Sunderland shirt. At the end of the 2008–09 season, he returned to Manchester City.

On 31 August 2009 it was announced that Portsmouth had signed Ben-Haim on a four-year deal. On 12 September 2009, Ben Haim made his league debut for the club in a 3–2 loss against his former club Bolton. Since then he was become one of the two first choice centre-backs under managers Paul Hart and his former manager at Chelsea, Avram Grant. He suffered an injury in the second half of the season, which kept him out of Portsmouth's FA Cup final game against Chelsea, which Pompey lost 1–0. On 20 December 2009 a match between Portsmouth and Liverpool which Portsmouth won 2–0, Ben Haim accused Liverpool striker Fernando Torres elbowing him during the match.[10] In May 2010, after Portsmouth had been relegated, Ben Haim left the club as there was a relegation-release clause in his contract but declined the chance to activate it.[11] He played for just one season for Portsmouth and made 24 appearances for the club in all competitions.[12] Ben Haim criticised the club's former owners as they prepared for life in the Championship the following season and the cash issues did play a significant role in the club's demise.[13] As the 2010/11 Championship campaign for Portsmouth was set to start, the club's administrator Andrew Andronikou wanted Ben Haim crippling salary off the club's wage bill and West Ham and an unnamed Greek club were interested in signing him.[14]

In July 2010 Ben Haim was set to join his ex-Portsmouth manager, Avram Grant at West Ham United on a free transfer, but it was reported that the move had collapsed after Ben Haim had failed a medical and Ben Haim's rumoured wage demands of £38,000-a-week.[15] On 2 August the Israeli press reported that Ben Haim had agreed terms with West Ham on a three-year[16] deal after passing a medical with Ben Haim considering legal action against the reporter who had published reports about his failed medical.[17] He joined West Ham on 3 August 2010 on loan until January 2011 with a view to a permanent deal.[18] On 24 August 2010 Ben Haim played his first game for West Ham, against Oxford United in the League Cup, in a 1–0 victory[19] and made his league debut for the club in a 3–1 loss against his former club Chelsea on 11 September 2010. On 1 January 2011 assisted Freddie Sears to score in a 2–0 win over Wolverhampton Wanderers.[20] Four days later on 5 January 2011 he played for West Ham as they lost 5–0 to Newcastle United.[21] This turned out his last appearance for West Ham. Despite his loan spell at West Ham having ended, the club continued talks with Portsmouth regarding a deal to bring Ben Haim back;[22] the two clubs could not come to an agreement, while financial issues prevented him from linking up with Pompey.[23]

In January 2011, Ben Haim returned to Portsmouth after his loan spell expired,[24] but he did not make any appearances for Portsmouth that season, returning to training with the squad.[25] He was in dispute with Portsmouth over £1.4million in unpaid wages. Because of this, manager Steve Cotterill was unable to select Ben Haim for the final fixtures of the 2010/11 season. The case was set to go to a Football League hearing in July 2011, but with new owners (CSI) installed at the club, Portsmouth were able to reach an acceptable agreement with Ben Haim.[26]

On 11 July, Ben Haim made his first appearance for Portsmouth since the 2009–10 season in a 4–0 pre-season win over Havant & Waterlooville.[27] On 6 August 2011, Ben Haim made his first league appearance in a 2–2 draw against Middlesbrough. On 27 August 2011, Ben Haim provided an assist to allow Nwankwo Kanu to score to make it 1–1 against Welsh side Cardiff City and also provided another assist the following week for Greg Halford to score the third goal in the match as Portsmouth lost 4–3 to his former club, West Ham. Later on in the 2011/12 season, Portsmouth would go into administration for the second time in two years, bringing them an automatic 10-point deduction. An arrest warrant was issued for Vladimir Aleksandrovich Antonov and Portsmouth were issued a winding up petition by HMRC for over £1.6 million in unpaid taxes, which was heard on 20 February.

The end of the 2011–12 season saw Portsmouth get relegated from the Championship, after which Ben Haim's agent, Pini Zahavi, stated that he would not play in League One despite having one year remaining on his deal, worth around £2 million.[28] However, Zahavi later stated that he was in the dark over Ben Haim's future.[29] Ben Haim's contract was criticized by administrator Trevor Birch because he was offered £36,000-a-week over four years, shortly before the club first went into liquidation. However, due to administration the maximum the club paid any player at that time was just £5,000-a-week.[30] In response, Ben Haim refused to take a letter from a supporters group asking them to waive their wages and has suggested that the administrator takes a pay cut instead.[31] He came to an agreement to leave the club in August 2012. [32]

He was released by Queens Park Rangers at the end of the 2012–13 season.[38] He continued training with the club for a short time after his release however, and appeared in a pre-season friendly against Exeter City on 11 July 2013.[39]