Federer, 38, moved up four places after earning £86.2m in the past year – about £81m of it in endorsements.
Cristiano Ronaldo (£85m), Messi (£84m) and Neymar (£77.5m) come next, while American basketball player LeBron James (£71.5m) completes the top five.
Boxer Tyson Fury was the highest earning Briton in 11th (£46.2m).
Formula 1 world champion Lewis Hamilton came 13th with earnings of £43.7m.
Japanese tennis player Naomi Osaka was revealed to be the highest paid female athlete earlier this month. She is 29th overall on the list, which was released on Friday.
“The coronavirus pandemic triggered salary cuts for soccer stars Messi and Ronaldo, clearing the way for a tennis player to rank as the world’s highest-paid athlete for the first time,” said Kurt Badenhausen, senior editor at Forbes.
“Roger Federer is the perfect pitchman for companies, resulting in an unparalleled endorsement portfolio of blue-chip brands worth $100m a year for the tennis great.”
Last week, two-time Grand Slam champion Osaka, 22, ended Serena Williams’ run of four years as the highest paid female athlete after earning £30.7m, £1.15m more than 38-year-old Williams.