He started his career in his hometown club Marsonia from where he moved to two Croatian capital city football clubs, first joining NK Zagreb and then signing with Dinamo Zagreb in 2007, where he was Prva HNL top goalscorer in the 2008–09 season. His prolific scoring earned him a transfer to VfL Wolfsburg in 2010. After some impressive performances at UEFA Euro 2012, where he was the joint top scorer with three goals, he was signed by Bayern Munich. In his first season with the club he won three trophies; the Bundesliga, DFB-Pokal, and the Champions League, while also becoming the first Croat to score in a Champions League final. He left Bayern for Atlético Madrid in 2014, and a season later was signed by Juventus for €19 million, where he won the domestic double in his first season.

Mandžukić made his first footballing steps at the German club TSF Ditzingen, based near Stuttgart, Germany, in 1992. Upon his return to his home city, he spent the period between 1996 and 2003 at NK Marsonia before spending a season at the city minnows NK Željezničar. The next season, he returned to Marsonia and in the summer of 2005 he made a move to NK Zagreb. He thrived under the tuition of Miroslav Blažević and earned much interest from other clubs, such as Chelsea and Manchester United.

In the summer of 2007, Mandžukić was bought by the Croatian powerhouse Dinamo Zagreb for €1.3 million as a replacement for their Arsenal-bound star striker Eduardo.[7] Upon his arrival, he managed to secure his spot in starting eleven, playing mostly in the position of second striker. On 4 October 2007, he put on an impressive performance against AFC Ajax in Amsterdam when he scored two goals in extra-time to secure Dinamo's 2–3 away win, as Dinamo qualified for the group stage of 2007–08 UEFA Cup. He finished his first season at Dinamo with 12 goals and 11 assists throughout 29 matches, but also had a poor discipline record, collecting eight yellow cards.

He started the 2008–09 season with two goals against Linfield in a qualifier for the UEFA Cup. In the 2008–09 Prva HNL, Mandžukić was the league's top goalscorer, bagging 16 goals in 28 appearances. He also scored three goals in the season's UEFA Cup. This was the season of his rise in the Croatian national team as well, as he collected eight caps in 2010 FIFA World Cup qualifying matches. After the 2008–09 season had finished, he was linked with German side Werder Bremen, but the €12 million offer was rejected by the Dinamo board, who were of opinion that Mandžukić's worth was at least €15 million. He started the 2009–10 season by scoring a goal in a Champions League play-off match against Red Bull Salzburg. Mandžukić received red card in the last minutes of the game. After he told the referee that he got hit by the bottle that somebody threw from the stands, he gave him his second yellow card and ruled him out of the game. On 17 September 2009, after Dinamo lost 2–0 at home to Anderlecht in Europa League, Mandžukić was controversially fined €100,000 after being accused of poor effort.[8] It was the first time in the history of the club that a player was financially fined.[9] On 20 September, Mandžukić captained Dinamo to a 6–0 victory against HNK Rijeka in Prva HNL. In a post–match interview, Mandžukić rejected any speculation about him leaving the club after the fine, stating that it was his childhood dream to captain the Dinamo side and that he gives his best in any match he plays for the club. During that season, he appeared in 24 league matches, scoring 14 goals. He appeared in five Europa League matches as well.

On 14 July 2010, Mandžukić signed for VfL Wolfsburg for a fee believed to be around €7 million.[10] Upon his arrival, in the first half of the 2010–11 season, he played regularly but mostly coming on as a substitute. At the time, he was mostly used as left winger under coach Steve McClaren, who played with only one striker, Edin Džeko. Things changed for Mandžukić, however, after the departure of Džeko to Manchester City in January 2011. Mandžukić scored his first Bundesliga goal for Wolfsburg on Matchday 26 against 1. FC Nürnberg under interim manager Pierre Littbarski. Upon the arrival of manager Felix Magath, Mandžukić was played in his natural position as striker. In the last seven matches of the domestic season, he scored eight goals, two of which came in the last match against TSG 1899 Hoffenheim, and were crucial for the club as they avoided relegation. In his second season in Wolfsburg, he became a regular starter in the Bundesliga and was the club's top goalscorer with 12 goals. In his two years at Wolfsburg, he scored 20 times in 56 appearances, establishing himself as one of Wolfsburg's best players during his stay and quickly becoming a fan favourite due to his goalscoring ability and attitude.

On 26 June, Mandžukić signed a contract with Bundesliga club Bayern Munich for a transfer fee of €13 million,[11] pending a medical test, subsequent to his strong performance at UEFA Euro 2012 in Ukraine and Poland, and because of his terrific form for Wolfsburg in the Bundesliga. On 27 June, the transfer was officially announced by Bayern Munich.[12][13]

On 24 July 2012, Mandžukić made his debut for Bayern in a 6–0 win against Chinese Super League side Beijing Guoan, scoring the fifth goal in the friendly match in the 79th minute. On 12 August, he scored his first goal in an official game against reigning Bundesliga champions Borussia Dortmund in the sixth minute, helping his team win the German DFL Supercup. He scored his first league goal for Bayern against Greuther Fürth on matchday one and added another one the next matchday in a 6–1 win against VfB Stuttgart. He went on to score twice against his former club Wolfsburg.

Mandžukić then added four more goals in five more Bundesliga matches, taking his tally to nine goals in 11 matches in the German top tier. After the Bundesliga winter break, Mandžukić continued with his goal scoring activity, netting three more goals in first two games, against Greuther Fürth and Stuttgart. He scored another brace against 1. FSV Mainz 05. He finished his first Bundesliga season with Bayern as the club's top goalscorer, netting a total of 15 goals in 24 matches and having a major impact in winning the Bundesliga title. He scored his first Champions League goal of the season in the Round of 16 match against Arsenal. He netted another one in the quarter-final match against Juventus in Turin, giving Bayern the 0–1 away lead. On 25 May, Bayern faced Borussia Dortmund in the 2013 UEFA Champions League Final and Mandžukić scored the first goal of the match, giving Bayern a 1–0 lead in 60th minute. Bayern went on to win the match 2–1 after a late goal from Arjen Robben. With this goal, Mandžukić became the first Croat to score in a Champions League final game and it capped a highly successful first season for him in Munich, as the club completed a treble-winning season, claiming the Bundesliga, Champions League, and DFB-Pokal, as well as the German Supercup at the start of the campaign.

Mandžukić first began the season slowly, having small issues adjusting to new Bayern coach Pep Guardiola's system. Guardiola changed Bayern's formation from the 4–2–3–1 they had used previously under Jupp Heynckes to a new 4–1–4–1 style. While it took a bit of time to adjust, Mandžukić regained his form nonetheless in time for league play. He opened the new season in the Bundesliga by scoring two goals in two league appearances. Mandžukić scored his first Champions League goal of the season when Bayern Munich began the defence of their Champions League title against CSKA Moscow with a 3–0 victory at the Allianz Arena. He headed the only goal as Bayern defeated a valiant FC Viktoria Plzeň in November to move into the knockout stages with a record-equalling ninth successive UEFA Champions League win. Mandžukić scored his tenth goal of the new Bundesliga season in a December match against Hamburger SV. In the first semi-final of 2013 FIFA Club World Cup, Mandžukić dove low to head Thiago Alcantara's cross into goal for 2–0 against Guangzhou Evergrande. He eventually won the competition with Bayern after the final with Raja Casablanca, ended with a 2–0 victory. Upon the Bundesliga winter break, Mandžukić was left out of the Bayern Munich 18-man roster in their match against Borussia Mönchengladbach, with Guardiola reportedly unimpressed with his performances in training.[14][15] He returned to the squad for the next match against VfB Stuttgart. A week later, against Eintracht Frankfurt, Mandžukić delivered a response with a commanding performance in Bayern's 5–0 win, scoring the last goal of the match and delivering a pinpoint pass to Mario Götze who opened the scoring.[16] On 12 February, Mandžukić scored his first hat-trick of the season, as Bayern Munich eased their way into the DFB-Pokal semi-final with a 5–0 rout of Hamburger SV.[17] In the match against Hannover 96, Mandžukić celebrated his 100th Bundesliga appearance by meeting Rafinha's cross to complete the goal.[18] Despite being the club's top scorer with 26 goals, Mandžukić was dropped from the team by Guardiola ahead of the 2014 DFB-Pokal Final.[19] Mandžukić stated that he wanted to leave Bayern because "the playing style of coach Pep Guardiola simply does not fit" him.[20]

On 10 July 2014, Mandžukić signed a four-year deal with the Spanish club Atlético Madrid for an undisclosed fee.[21] On 24 July, Mandžukić was presented to Atlético Madrid fans at Vicente Calderón, wearing the number 9 shirt.[22][23] He made his competitive debut in the first leg of the 2014 Supercopa de España on 19 August, a 1–1 draw away to Real Madrid, in which he played 78 minutes before being replaced by fellow debutant Raúl Jiménez.[24] In the second leg at Vicente Calderón, Mandžukić scored his first competitive goal for the club, netting the winner after just two minutes.[25] It was the quickest goal in the competition.[26]

Mandžukić scored his first league goal against SD Eibar, on 30 August, as Atlético recorded their first win of the new Primera División season.[27] In the opening match of the new Champions League campaign, against Olympiacos, Mandžukić collected Cristian Ansaldi's cross and sent home a close-range header into the bottom corner to make it 1–2, in eventual 2–3 loss.[28] Mandžukić helped Atlético move within two points of joint-league leaders Barcelona and Sevilla on 26 October when he tapped in Arda Turan's cross to score the solitary goal in a win over Getafe.[29]

After returning to action sporting a facemask, he went from strength the strength, bagging 14 goals in all competitions before the winter break – including a sensational hat trick against Olympiacos in the return group stage game at the Calderon on 26 November, which ensured a place in the Champions League knockout stage.[30] Mandžukić scored his 11th La Liga goal of the season in his 19th appearance, in Los Colchoneros emphatic 4–0 victory over local rivals Real Madrid in the second league derby of the season, when sport analysts noted that Mandzukic put in one of the great centre-forward displays seen in La Liga in recent years, contributing to everything that was good about his side before putting the icing on the cake with a well-taken fourth. In total, Mandžukić bagged 20 goals in 43 appearances in his only season in Madrid, living up to his image of hard-working and proven goal scorer.[31][32][33]

On 22 June 2015, Serie A champions Juventus announced that Mandžukić joined the club from Atlético Madrid on a four-year contract for a fee of €19 million payable in three installments, including a possible extra €2 million in performance-related add-ons.[34] Juventus was already the third club Mandžukić had joined immediately after they lost the Champions League final, having previously signed for Bayern Munich and Atletico Madrid after they have lost in the final of Europe's most elite competition.[35] On 8 August he scored the opening goal in the 69th minute for Juventus with a header against Lazio in the 2015 Supercoppa Italiana, a 2–0 win in Shanghai.[36] On 23 August 2015, he made an official league debut for Juventus, starting and playing the full 90 minutes in a 1–0 loss to Udinese, in the first league game of the 2015–16 Serie A season.[37] On 21 September 2015, it was confirmed that Mandžukić would be out for three weeks following a thigh related injury the day before in a 2–0 win over Genoa.[38] However, he returned early, scoring Juventus's first goal, and temporary equaliser, as the team came from behind to win 2–1 away against Manchester City, during their opening match of the Champions League group stage, on 15 September 2015.[39] On 25 October 2015, Mandžukić scored the final goal in Juventus's 2–0 home win over Atalanta in the 49th minute; this was his first Serie A goal in his 6th league appearance with the club.[40] He scored again two games later, helping Juventus to defeat Empoli 3–1.[41] On 25 November 2015, Mandžukić scored the winning goal in a 1–0 home win over Manchester City in the second leg of the Champions League group stage, to secure the club a spot in the round of 16.[42] Due to these significant goals, as well as another one in a 3–0 away win against Palermo on 29 November,[43] he was voted Juventus player of the month for November 2015.[44] On 27 January 2016, Mandžukić sustained a muscle injury during the first semi-final leg of the Coppa Italia against Internazionale, putting him on the sidelines for four weeks. It was initially feared that he would miss the first round of 16 leg of the Champions League against his former club, Bayern Munich.[45] However, he returned to action earlier than expected, starting in the match against Bayern on 23 February, and setting up Paulo Dybala's goal in a 2–2 home draw.[46]

His influence in the national team increased during the UEFA Euro 2012 qualifying. His first goal of the campaign came in June 2011, when he scored an equalizer against Georgia at the Stadion Poljud. He added another header against Latvia in the last match of the qualifiers. With Croatia finishing second in their group, they had to face Turkey in the Euro 2012 play-offs. In the first match played in Istanbul, Croatia stunned the home fans by winning 0–3, with Mandžukić scoring the second goal from a header in the 32nd minute of the match.

Mandžukić was named in Croatia's squad for the 2014 FIFA World Cup in Brazil, but was suspended for the team's first match against the host nation in São Paulo on 12 June 2014.[53] He returned to the team for their second match against Cameroon on 18 June, and marked his debut at the World Cup scoring twice in a 4–0 win,[54] being awarded the "Man of the Match" award.[55]

Mandžukić scored once in Croatia's successful UEFA Euro 2016 qualifying campaign, opening a 1–1 home draw with Italy in Split on 12 June 2015.[56] The following 4 June, both he and Nikola Kalinić scored hat-tricks in a 10–0 warm-up win against San Marino in Rijeka ahead of the tournament; the result was a record victory for Croatia.[57]

In addition to his goalscoring, pundits have noted Mandžukić for his physical strength, versatility, mobility and fitness, as well as his ability in the air.[4] He was even given the nickname Đilkoš (pronounced jill-kosh) by Miroslav Blažević, which means brash and unsophisticated, referring to the striker's physical strengths, powerful physique and seemingly endless stamina, rather than his technical ability.[59] Known for his high work-rate and defensive contribution,[3] Mandžukić's former manager at Wolfsburg, Felix Magath, noted his endurance, stating that the striker is 'so fit that I think he could play two back-to-back games without stopping even for a minute.'[60]

Following his move to Atlético Madrid, Sky Sports analyst Adam Bate wrote that he was the perfect fit for manager Diego Simeone's style as Mandžukić is 'often the instigator of the press with his energetic running, Mandzukic battles defences, driving them back to create space for team-mates as well as preventing opponents building patiently without pressure on the ball.'[60] Bate further added that the Croatian 'is both a physical and mobile striker who does so much of his best work without the ball, seemingly doing the work of two players and thus allowing an extra man in midfield.'[60]