Early career Born in
Nobres,
Mato Grosso, Fábio began his career with
União Bandeirante-PR before moving to
Atlético-PR on loan, where he won the
Campeonato Paranaense in 1998. However, his 16 appearances at the club were considered at youth level. Fábio joined
Cruzeiro on another loan in 1999, but only played a friendly match in March 2000. A backup option, he won the
Copa do Brasil.
Cruzeiro Fábio returned to
Cruzeiro in 2005 in an exchange for the striker
Alex Dias. A year later, he achieved the
Campeonato Mineiro with the club. In the first half of 2007, Fabio's performance on the field was inconsistent with consequential mistakes, most notably in the first leg of the state championship against rivals
Atlético, which ended in a 4–0 loss, with Atlético scoring the fourth goal by sliding the ball into an empty net after Fábio had turned his back to the field. Cruzeiro supporters asked for his removal from the starting squad, and likewise, Fábio was out for three months for an alleged injury, even though he had played the whole match against Atlético, during which he did not show any sign of severe pain. Returning to his starting position in July, he went on to finish the season with the best save percentage in Brazil. In April 2008, it was reported that he would move to
Fiorentina, subject to application on obtaining an EU passport as under descendant status, but the move never happened. On 2 June 2010, Fábio became only the third goalkeeper to have his hands engraved on the stadium's Walk of Fame. Later that year, on 5 December, he was awarded the
Bola de Prata as the best goalkeeper of
Série A. On 27 July 2011, Fábio made his 400th appearance for Cruzeiro in a Série A match against
Atlético Goianiense. On 7 February 2012, he was awarded the
Troféu Telê Santana, given to the best starting eleven in Minas Gerais, thus becoming the outright all-time winner of this award with nine victories in eleven participations. During both the
2013 and
2014 Campeonato Brasileiro Série A winning campaigns, Fábio served as Cruzeiro's
captain and thus lifted the
Brasileirão trophy twice in a row. Therefore, he was selected in 2013 as the best goalkeeper in Brazil, winning the prestigious
Bola de Prata trophy for the position for the second time. On 7 November 2014, Fábio made his 600th appearance for Cruzeiro in a Série A match against
Criciúma. On 13 June 2015, he became Cruzeiro's all-time record appearance holder, playing his 634th match for the club in a 3–1 away victory over Vasco da Gama, surpassing the previous mark set by
Zé Carlos. A year later, on 16 July 2016, he made his 700th appearance for Cruzeiro in a Série A match against his future club Fluminense, jokingly stating that he would "trade 100 games for ten points". The following month, on 14 August, in a Série A match against
Coritiba, he sustained a sprained knee during a tackle from Turkish striker
Kazim, and even though he managed to push through for over 20 minutes, he soon asked to be replaced by
Lucas França. On 9 April 2017, after eight months away, Fábio made his return to the field in a
Campeonato Mineiro match against
Democrata, having to now dispute the starting goalkeeper spot with
Rafael. Later that year, Fábio played a crucial role in helping Cruzeiro win the
2017 Copa do Brasil, saving one penalty in the
shoot-out against
Grêmio in the semi-finals and saving another penalty in the shoot-out against
Flamengo in the
finals. The following year, he once again played a crucial role in helping Cruzeiro win the
2018 Copa do Brasil, saving all three penalties in the shoot-out against
Santos in the quarter-finals, which allowed him to reach a total of 24 penalty saves, despite having only three in 2008, aged 28. He then started in both legs of the
finals, which ended in a 3–1 aggregate victory over
Corinthians. Four days after the final, on 21 October, he made his 800th appearance for Cruzeiro in a Série A match against
Chapecoense, keeping a clean-sheet in a 3–0 victory. On 1 September 2019, Fábio saved a penalty in his 575th Série A appearance, a 1–0 win over Vasco, matching
Rogério Ceni's record to become the joint player with the most appearances in Série A. On 8 October 2020, he made his 900th appearance for Cruzeiro in a Mineirão match against
Sampaio Corrêa, thus becoming only the fifth Brazilian player to do so for a single club, after São Paulo's Rogério Ceni (1.238), Santos'
Pelé (1.116), Vasco's
Roberto Dinamite (1.110), and Palmeiras'
Ademir da Guia (901). On 5 January 2022, Fábio announced on his Instagram account that he would leave the club after 17 seasons, because the club was not willing to renew his contract until December 2022, as it had been previously verbally agreed with the club's president Sérgio Santos Rodrigues, but instead for only three more months, which Fábio did not accept as he felt that he was still in "great physical and technical condition to continue playing at a highest level". The goalkeeper left Cruzeiro with twelve titles won and 976 games played, thus ending his dream of reaching 1,000 matches for Cruzeiro. During his time there, he survived ten coaches and three presidential coups, as well as his embarrassment blunder against Atlético Mineiro in 2007. Fábio made his debut for the club two weeks later, on 4 February, in a game against
Audax Rio, becoming, at the age of 41 years and 120 days, the oldest footballer in the club's history, surpassing the record of
Magno Alves (40 years and 312 days). On 1 May 2022, he made his 600th Série A appearance against Coritiba, becoming the first-ever player to do so. During the 2022 season, the 42-year-old Fábio played in 86% of Fluminense's matches, even though his contract only demanded 60%, including all 38 rounds of the Série A, repeating a feat he had already achieved with Cruzeiro in 2008. On 12 April 2023, Fábio become the first-ever player to make 100th appearances in the Copa do Brasil, keeping a clean-sheet in a 3–0 win over
Paysandu. The following month, on 25 May, he made his 91st appearance in the Copa Libertadores, a 1–0 loss to
The Strongest, overtaking Rogério Ceni to become the Brazilian with the most games in the history of the Copa Libertadores. On 25 July 2023, he made his 100th appearance for Fluminense in a Série A match against Coritiba. Later that year, on 4 November, Fábio became the first Brazilian to reach a 3-digit tally of participations in the Copa Libertadores by starting in the
final against
Boca Juniors, helping his side to a 2–1 victory in
extra-time. In doing so at the age of 43, he also became the oldest player to play in and win a Copa Libertadores final, surpassing
Ever Almeida's record from 1990, aged 42. This victory qualified the club for the
2023 FIFA Club World Cup, where he kept a clean-sheet in the semifinals against
Al Ahly (2–0), becoming, at the age of 43, the second-oldest player in the history of the Club World Cup, only behind
Óscar Pérez, aged 44 years and 10 months in the
2017 edition. In the
final on 22 December, Fluminense lost 4–0 to the European treble winners
Manchester City, becoming, at the age of 43 years and 83 days, the oldest player to compete in a Club World Cup or Intercontinental Cup final, surpassing Ever Almeida's record from 1990, aged 42.
2024 In February 2024, Fábio started in both legs of the
2024 Recopa Sudamericana against Ecuadorian side
LDU Quito, keeping a clean-sheet in the second leg on 29 February to help Fluminense win its first-ever
Recopa Sudamericana title. In doing so at the age of 43, he became the oldest player to play in and win the Recopa Sudamericana. On 13 April, Fábio started in the opening matchday of the
2024 Série A against
Bragantino, becoming, at the age of 43 years and 6 months, the oldest player in the history of Série A, surpassing
Zé Roberto's record from 2017, aged 43 years and 4 months. On 20 August 2024, Fábio made his 108th appearance in the Copa Libertadores, a 2–1 win over Grêmio in the second leg of the round of 16, overtaking
Sergio Aquino to become the player with the second most games in the competition's history, only behind Ever Almeida (113). Having lost the first leg 2–1, the tie was decided on penalties, in which he saved two of them to help Fluminense reach the quarter-finals. In 2024, he saved his 38th penalty, thus becoming the joint-fourth Brazilian goalkeeper (alongside
Tiago Volpi) with the most penalty saves in history, only behind
Diego Alves (40),
Dida (42), and Rogério Ceni (51). On 25 September 2024, just five days shy of his 44th birthday, Fábio became the second-oldest player in the history of the Copa Libertadores, overtaking
José Francisco Nieto by six days; Fluminense lost the match 2–0 to
Atlético Mineiro, thus being knocked out from the competition. On 26 October, he made his 700th Série A appearance against
Vitória, becoming the first-ever player to do so. At the age of 44 years and 69 days, Fábio was the second-oldest player in the world to feature in a top-tier national league match in 2024, only behind the Bangladeshi defender
Nasiruddin Chowdhury, who appeared in a
Bangladesh Premier League match at the age of 44 years and 219 days.
2025 On 13 March 2025, Fábio made his 200th appearance for Fluminense in the first leg of the
2025 Campeonato Carioca final against Flamengo, which ended in a 1–2 loss. Throughout these 200 matches, the 40-year-old Fábio kept 78 clean-sheets, made over 600 saves, including four penalties. Fábio was a member of the Fluminense team that competed in the
2025 FIFA Club World Cup, extending his record for the longest time playing in FIFA tournaments to 28 years, having first played one at the
1997 FIFA U-17 World Championship. In the club's opening match on 17 June, he kept a clean-sheet in a goalless draw with European side
Borussia Dortmund, becoming, at the age of 44 years and 260 days, the oldest player in the tournament, being four full years older than the next closest, his teammate
Thiago Silva (40y and 268d). This match also marked his 1,375th official appearance, which caused the American newspaper
The Athletic to wrongly claim that he had surpassed
Peter Shilton to become the outright all-time record holder for the most competitive appearances in world football. On 25 June, Fábio made two one-on-one saves to keep his 507th clean-sheet in a goalless draw with
Mamelodi Sundowns, surpassing Buffon to become the goalkeeper with the most clean-sheets in football history. In the round of 16 on 30 June, he made four saves to keep yet another clean-sheet in a 2–0 victory over the
UEFA Champions League runners-up
Inter Milan. He eventually featured in all 38 league matches in the
2025 season, becoming the only player to achieve this feat twice.
2026 On 1 January 2026, aged 45, Fábio renewed his contract with Fluminense until December 2027. ==International career==