Olić was born and raised in the village of Davor near Nova Gradiška, Croatia. He started playing football for the local club NK Marsonia in 1996, and spent two good seasons there before he was acquired by Hertha BSC in 1998. He did not see much play there and returned to Marsonia the following year.
After another successful season at Marsonia — in the 2000–01 season, he scored 17 goals in 29 games — in 2001, he moved to NK Zagreb where he scored 21 goals in 28 appearances and helped his team win the league. The following season, he moved to Dinamo Zagreb, where he scored 16 goals in 27 games, and became the best striker of the Croatian First League.
In 2003, Olić was acquired by CSKA Moscow. His form rose gradually, and in the 2005 season, he contributed 10 goals in twice as many games. With CSKA Moscow, he won the UEFA Cup in 2005, the Russian Premier League three times (in 2003, 2005 and 2006), the Russian Cup twice (in 2005 and 2006), and twice the Russian Super Cup (2004 and 2006).
In January 2007, Olić moved to Hamburger SV, playing his first Bundesliga game with them against Energie Cottbus on 31 January. He was signed because Hamburg were in deep trouble, finishing in the relegation zone before the winter break. It worked out in the end, and Hamburg finished seventh, which even acquired them an Intertoto Cup place, which they eventually won. He scored two goals in the last match in the 2006–07 Bundesliga season against Alemannia Aachen in a 4–0 win. In October 2007, Olić scored a hat-trick in the Bundesliga match against VfB Stuttgart, which Hamburg won 4–1. He was the first player in the club's history to score three successive goals in one half.
Olić effectively won the 2008 Emirates Cup for Hamburg, with two injury time goals against Juventus increasing the team's points tally to an unassailable level (due to the points-for-goals system). He endeared himself to Hamburg fans for his commitment and consistent work rate on the pitch. In his last game for the north German club, he sported a t-shirt with the words, "Danke fans" ("Thank you, fans") written on it as he bid farewell to the fans. Olić with Bayern.=== Bayern Munich=== On 3 January 2009, Olić signed a three year contract with Bundesliga rivals Bayern Munich. He joined the club on a free transfer on 1 July 2009. Initially, he was supposed to be back-up to the likes of Miroslav Klose and Mario Gómez, but due to injury and fitness issues, he began to be preferred as first choice. On 8 August, his Bayern debut, he scored the opening goal against TSG Hoffenheim in a 1–1 draw and soon became a favourite with the Bayern fans. He reached new heights upon scoring a crucial goal in the 2010 Champions League quarter-final (first leg) against Manchester United in injury time, to give Bayern a slender 2–1 lead. He also scored the first goal in the second leg for his team, but they trailed 3–1. The game ended 3–2. Bayern, however, won on away goals. This knocked Manchester United out of the Champions League. He scored his first hat-trick for the Bavarians against Olympique Lyonnais scoring with his left foot, right foot and his head a first in the champions league in the second leg of the semi-finals on 27 April 2010. The victory against Lyon secured his team a place in the UEFA Champions League final, against Inter Milan which they eventually lost 2–0.
Olić signed for Wolfsburg at the start of the 2012-13 season.
Olić was part of the Croatian national team at the 2002 FIFA World Cup where he played in two games and scored one goal, but an important one against Italy which ended 2–1 for Croatia. Shortly after scoring, Olić revealed a picture of his newly born child at the time under his jersey. He was remembered as being unable to put his jersey back on, as the material became tangled in the excitement during his celebration. Olić also played three games for Croatia in Euro 2004, and two games in 2006 FIFA World Cup.
Olić was named man of the match in the very last qualifier of their group in which Croatia defeated England 3–2. He famously scored the second goal in the match, which gave Croatia a two goal lead and knocked England out of contention for a place at the Euro 2008. England manager Steve McClaren was sacked as a result.
Olić was named in Croatia's 23-man squad for Euro 2008. On 12 June, he scored in the 62nd minute of Croatia's second Group B match against Germany to give the Croats a 2–1 shock win over the pre-tournament favourites. He was rested for the last group match as they had already secured qualification for the knockout stages ahead of Germany. Croatia was victorious over Poland, making Croatia hold a record of 3–0–0 in the first round of Euro Cup 2008. On 15 June 2008, he was, according to Castrol Index sponsors, the fastest player at Euro 2008.
Olić was recalled to the side for the 2010 World Cup qualifiers. He contributed three goals in eight games, but Croatia missed out on a play-off spot by a point. Olić was injured in a friendly match against Norway, which was the cause of his last-moment absence in UEFA Euro 2012.