Stekelenburg began his career at Ajax, playing 282 matches over nine seasons in his first spell there and winning nine honours, including two Eredivisie titles. He went on to play for Roma, Fulham, Monaco, Southampton and Everton. He returned to Ajax after the expiry of his contract at Everton following the 2019–20 Premier League season.
Stekelenburg began his career at Zandvoort '75 before joining VV Schoten, which he left for Ajax when he was 15 years old. He made his official debut for Ajax on 24 February 2002, in a match against NAC Breda. At the start of the 2002–03 season, he won his first silverware when Ajax won the Johan Cruyff Shield. In 2004, he and Ajax won the Eredivisie, having played ten matches that season.
Stekelenburg became the first choice goalkeeper at Ajax in the 2005–06 season and won his first KNVB Cup. At the start of the 2006–07 season, he won his second Johan Cruyff Shield, which he helped his team defend the next season, and later on in 2006–07, he won his second KNVB Cup.
Stekelenburg was named Ajax "Player of the Year" for the 2007–08 season, succeeding Wesley Sneijder.
During the 2008–09 season, he lost his place in the goal to Kenneth Vermeer due to injuries. He re-established himself as the first-choice goalkeeper under new manager Martin Jol and subsequently had a very strong season for both Ajax and the Dutch national side. During the 2009–10 season, Stekelenburg went on to have a consistent season, playing in all of Ajax's Eredivisie and Europa League matches, the latter after they were eliminated from the UEFA Champions League in the group stage. However, Stekelenburg sustained a finger injury which kept him out for the remainder of the season. He made a total of 51 appearances in the 2010–11 season in all competitions.
After winning the 2010–11 Eredivisie on 15 May 2011, Stekelenburg dropped the trophy[4] while standing on top of the Ajax team coach with Jan Vertonghen. He won Ajax Player of the Year for the second time.[5]
Roma
On 1 August 2011, it was announced Stekelenburg had officially transferred to Roma for a €6.325 million transfer fee plus bonuses, making him the first Dutch footballer to ever play for the Italian club.[6][7] He picked the number 24 shirt, which is the day his son was born.[8] He made his debut on 11 September 2011, against Cagliari.
Fulham
On 3 June 2013, Roma sporting directorFranco Baldini confirmed he had finalised a deal with Premier League club Fulham for the sale of Stekelenburg.[9] Two days later, on 5 June, Fulham announced Stekelenburg had signed on a four-year contract for an undisclosed transfer fee;[10] Roma later disclosed the fee was €5.6 million.[11] He made his debut on 17 August in a 1–0 win away to Sunderland; however, he came off injured in the second half and was replaced by David Stockdale.[12] He returned on 21 October at a win against Crystal Palace, but went on to lose the next four starts in a row.
Following the sacking of René Meulensteen as Fulham manager, Stekelenburg was dropped to the bench in favour of Stockdale by Felix Magath, and following Fulham's relegation and Stockdale's departure, lost his place in the squad altogether, as Magath favoured Jesse Joronen and Marcus Bettinelli.
On 9 August 2014, Stekelenburg joined French club Monaco on a season-long loan.[13] With Danijel Subašić as Monaco's starting goalkeeper, Stekelenburg was preferred for cup matches, making his debut in the round of 16 of the Coupe de la Ligue away to Lyon on 17 December. After a 1–1 draw at the Stade de Gerland, he helped Monaco win 5–4 in a penalty shootout by saving from Jordan Ferri.[14] In the semi-finals on 4 February 2015 against Bastia at the Stade Louis II, it again went to penalties after a goalless draw. He saved from Guillaume Gillet and Giovanni Sio, but Monaco were eliminated nonetheless.[15] His sole Ligue 1 appearance came on 22 March away to Reims, a 3–1 victory.[16] On 1 June, the club announced Stekelenburg would return to Fulham after his season-long loan expired.[17]
On 1 July 2016, Everton, managed by compatriot Ronald Koeman, announced they had signed Stekelenburg from Fulham on a three-year contract, for an undisclosed transfer fee.[21] He made his debut on 13 August as the Toffees began their campaign with a 1–1 home draw against Tottenham Hotspur,[22] and on 15 October, he saved penalties from Kevin De Bruyne and Sergio Agüero to ensure the same result away to Manchester City.[23] Stekelenburg limped off the field after suffering from a leg injury in the 63rd minute of the Merseyside derby at Goodison Park against Liverpool on 19 December 2016. He returned to action in April 2017, when Ronald Koeman dropped Joel Robles after 17-straight starts by the Spanish goalkeeper.[24]
In 2017–18, Stekelenburg struggled with groin injuries and lost his place to Jordan Pickford, but was awarded with a two-year contract extension at the end of the season.[25] In June 2020, with his deal set to expire, he extended it until the end of the season, which had been postponed by the COVID-19 pandemic.[26]
Return to Ajax
On 22 June 2020, it was announced that Stekelenburg would rejoin Ajax following the 2019–20 Premier League season. From February 2021, he gained a starting place due to André Onana's 12-month ban for doping,[27] and in May he signed a contract extension until 2022.[28]
On 18 May 2023, Stekelenburg announced that he would retire at the end of season.[29][30]
Despite his international debut in 2004, Stekelenburg was called up to Van Basten's UEFA Euro 2008 squad to play as understudy to Van der Sar. He participated in the Group C match against Romania on 17 June—with the Netherlands already having qualified for the quarter-finals, the coach fielded a second-string side to give players like Stekelenburg an appearance. He kept a clean sheet in the 2–0 win at the Stade de Suisse in Bern.[31]
In a September 2008 friendly match against Australia, Stekelenburg was sent-off after 44 minutes of the first half for fouling Joshua Kennedy, becoming the first goalkeeper of the Dutch national side to receive a red card.
After Van der Sar's retirement from the national team, Stekelenburg became the Netherlands' first-choice goalkeeper under manager Bert van Marwijk. Stekelenburg was included in the preliminary squad for the 2010 FIFA World Cup in South Africa.[32] On 27 May 2010, Van Marwijk announced he would be part of the final 23-man squad participating in the competition.[33] Stekelenburg helped the Netherlands reach the final of the competition against Spain by making key saves throughout the tournament, most notably from Kaká in the Netherlands' 2–1 victory against Brazil in the quarter-finals.[34] He conceded six goals in the whole tournament, two of them being penalty kicks. Despite making a number of saves in the final, he ended up on the losing side, conceding the match's only goal to Andrés Iniesta in the 116th minute.
Stekelenburg played all three matches during the group stages of Euro 2012 as the Netherlands finished bottom of their group.
On 7 October 2016, four years after his last international appearance, Stekelenburg started in a 2018 FIFA World Cup qualification match against Belarus, a 4–1 Dutch victory.[35]
On 13 August 2021, following the Netherlands' exit in the last 16 of Euro 2020, Stekelenburg officially announced his retirement from international football.[38]