Klasnić started his professional career with local side St. Pauli, and impressed as a striker in the three and half seasons he played for the club in the Second Bundesliga since becoming a professional in January 1998. Prior to his spell at St. Pauli, he has played for less known amateur sides Union 03 Hamburg and TSV Stellingen.
After helping St. Pauli to gain promotion to the first division with 10 goals scored for the club in the second division during the 2000–01 season, he made the switch to Werder Bremen in the summer of 2001 and finally made his mark in the first team in 2003 with some powerful performances in the Bundesliga. His first two seasons at the club had been marked by erratic form (he scored only three goals in 36 Bundesliga appearances) and two serious knee injuries, but he laid old ghosts to rest as he emerged a key figure in Werder Bremen's march to the Bundesliga title in the 2003–04 season, when he also won the DFB-Pokal with the club. He scored 13 goals and made another 11 for his Brazilian strike partner Ailton. His expiring contract caused a scramble for his signature at the beginning of the year before he eventually decided to stay at Bremen.
Participating in the 2004–05 UEFA Champions League season, Klasnić scored five goals in the two group matches against Belgian side RSC Anderlecht, including a hat-trick in the 5–1 home victory for Werder Bremen, helping the team to advance to the first knock-out stage of the competition before losing to strong French side Olympique Lyonnais, who crushed them 10–2 on aggregate.
His start in the 2006–07 season was not very successful either and he had to make seven Bundesliga appearances before finally scoring his first league goal of the season in Werder Bremen's quite disappointing 1–1 draw against underdogs Energie Cottbus at home. However, Klasnić suffered a kidney failure in early 2007 (see Illness and kidney transplantation) and was out for more than ten months. In April 2008 he claimed that Werder's club physicians could have already detected the illness in 2002 and thus sued them in Landgericht Bremen. He also stated that he would not prolong his expiring contract with Werder since it would mean to be treated by the same medical personnel who had not detected his illness in time.
On On 8 July 2008, Klasnić moved to FC Nantes where he was loaned, then he signed a four-year contract. After one very difficult season with just six goals in 28 games for him, FC Nantes was relegated in French Ligue 2. The next season, he scored four goals in just five games.14 May 2008, Werder Bremen confirmed that Klasnić was leaving the club.
Klasnić signed for Bolton Wanderers on transfer deadline day of the 2009–10 season on a year-long loan deal, becoming Gary Megson's last signing for the club. "Ivan is a player who we have been tracking for quite a while. His goalscoring record is very good and he has an excellent pedigree at international level with Croatia and domestically in Europe." – Gary Megson. On 12 September 2009, Klasnić made his debut for Bolton in their 3–2 win over Portsmouth after coming on as a substitute for Sam Ricketts. One of his first contributions was to be involved in the move which lead to the winning goal by Gary Cahill. His first goal for the club came in the 3–2 win against Everton on 25 October. He finished the season with eight Premier League goals.
On 4 August 2010, Klasnić signed permanently for Bolton on a two year contract following his loan spell with the club. and scored the first goal of his second spell in the 1–0 Carling Cup victory at Southampton on 24 August. His first Premier league goal after signing permanently was the winner in the 2–1 home win against Stoke City, although he was also sent off in the match. Klasnić scored a late winner against Aston Villa on 5 March 2011. In May 2011, Klasnić scored a late goal after coming on as a substitute against Sunderland to make the score 1–1, only for Sunderland to grab a winner in stoppage time. Klasnić did not start a single Premier League game the whole season, but still managed seven goals in all competitions.
Klasnić began the 2011–12 season with a place in the starting line up, and a goal, as Bolton beat Queens Park Rangers 4–0 on the opening day. He followed this up with another goal the following week in a 3–2 defeat to Manchester City, and a late consolation in a 3–1 away loss to Liverpool. At this point of the season he was the Premier League's leading goalscorer. He was sent off in a 2–1 loss against Norwich for a headbutt on Marc Tierney on 18 September 2011, forcing him to fall out of the team. His first start after his red card was in a 5–0 win against Stoke City on 6 November in which he scored two goals and gave assists for two others. He then scored a penalty in the following game against West Brom but Bolton lost 2–1. His next goal, his seventh of the season, came a few weeks later at home to Aston Villa, but Bolton again lost 2–1. After losing his place in the team to fellow forward David Ngog, he came back as a late substitute at home to Queens Park Rangers on 10 March, where he scored the winner in the 86th minute as Bolton won the match 2–1. After Bolton's relegation from the Premier League, on 16 May, Klasnic confirmed on his official website that he had left the club.
Klasnić turned down an invitation from Rudi Völler to play for Germany and chose to play for Croatia instead as he had already won three caps and scored one goal for their under-21 team in the spring of 2001. He also played five times and scored one goal for the Croatian under-19 team in 1998 and 1999. By a quirk of fate, his international debut came against Germany in February 2004 in a friendly match where the Germans claimed a 2–1 victory.
He was selected to play for Croatia in the UEFA Euro 2004. However, he was left on the substitutes bench throughout the tournament. Croatia did not advance past the group stage and the media often attributed that to the lack of inclusion of Klasnić, among other things.
In the Croatian national team, however, his performances during 2004–05 were rather modest as he only netted one goal in eight qualifying matches for the 2006 FIFA World Cup, being on target in the team's opening qualifier against Hungary in September 2004, which they easily won 3–0. In February 2005, he gave a good performance for the national team in a friendly match against Israel, scoring twice in a 3–3 draw. On the first day of March 2006, he was on target for Croatia once again as he netted their first goal in a 3–2 win over Argentina in another friendly match.
In May 2006, he was expectedly named to the Croatian 23-man squad for the 2006 FIFA World Cup finals in Germany and displayed really good shape throughout the month as he first scored four goals in three Bundesliga matches for Werder Bremen, ending the 2005–06 Bundesliga season with a total of 15 goals scored, and then netted a brace for the national team in a World Cup preparation friendly against Austria on 23 May, where they easily won 4–1. However, as the World Cup approached his good shape started to fade and he did not manage to score any further goals in the remaining three preparation matches as well as in all three group matches at the tournament, where Croatia exited the competition in the first round with two draws and a defeat.
In the 2006–07 season, he lost his place in Croatia's starting XI after giving two modest performances in the opening two qualifying matches for the UEFA Euro 2008, where he nevertheless managed to score one goal in the 7–0 crushing of minnows Andorra. In the following two matches, against England and Israel, he was left an unused substitute.
At Euro 2008, Klasnić was an unused substitute in Croatia's Group B opening two games; however he started the final group match on 16 June vs. Poland and scored a goal in 53rd minute thus, sending his side with a perfect group stage score into the next round. In the quarter-finals match against Turkey, Klasnić was again on the bench but was given the chance to play at the start of the first extra time in substitution of teammate Ivica Olić. In the 118th (with just two minutes to play plus injury time), Klasnić headed an elevated pass provided by Luka Modrić and scored a crucial goal for Croatia. However, Croatia was to be eliminated from the tournament as Semih Şentürk equalised with a goal just two minutes later and Turkey won the subsequent penalty shoot-out. Ivan was remembered for his efforts which saw him become the only player to ever participate at a major tournament after a kidney transplant, also scoring two goals during his campaign.
In January 2007, it was reported that Klasnić suffered kidney failure. On 25 January 2007, he received a kidney transplantation from his mother Šima, but soon it was reported that his body rejected the new organ.
On 23 March 2007, he underwent surgery to replace the rejected kidney, this time receiving a kidney from his father. The second transplantation was a success, and Klasnić stated that his doctors told him that he "would be able to continue playing football."
However, in August 2007, the doctors at Werder Bremen forbade him to train due to inability of his body to withstand heavy physical strain.
In September 2007, doctors finally allowed Ivan Klasnić to attend full training after he was absent for about six months. He then joined the team and made a couple of appearances in the club's cup activities and also appeared in a few matches for the second team.
Finally, on 24 November 2007, he was selected to start for Werder for the first time since December 2006, and played 65 minutes for his team in a Bundesliga match against Energie Cottbus. Klasnić completed his comeback on 15 December 2007, scoring twice in Bremen's 5–2 victory over Bayer Leverkusen, playing 85 minutes.
In March 2008, Ivan was recalled to the national team after a year of absence. He became the first player ever to participate at a major tournament after a kidney transplantation when he played at Euro 2008 and scored against both Poland in the group stage and against Turkey in the quarter-finals.