The award is the 32-year-old Argentine’s first Ballon d’Or since 2015 and comes after he scored 54 goals for club and country in 2018-19, in which Barca won La Liga.
Liverpool’s Virgil van Dijk came second – one of four Liverpool players in the top seven, including Sadio Mane in fourth.
Juventus and Portugal forward Cristiano Ronaldo, who has won the award five times, was third in the voting. Messi’s win means he’s one Ballon d’Or better than Ronaldo.
American Megan Rapinoe, who was Golden Ball winner as USA claimed a second successive World Cup in 2019, has won the women’s trophy.
Liverpool keeper Alisson won the inaugural Yashin Trophy for best goalkeeper, ahead of Barcelona’s Germany Marc-Andre ter Stegen and Brazilian compatriot Ederson of Manchester City.
Defender Matthijs de Ligt took the Kopa Trophy, awarded to the best under-21 player and selected by former Ballon d’Or winners.
The 20-year-old, who joined Juventus this summer after helping Ajax reach the semi-finals of last season’s Champions League, beat Borussia Dortmund and England forward Jadon Sancho to the award.
Messi’s win means the Ballon d’Or award has been won by a player from Spain’s La Liga in each of the last 11 years, including last year’s winner Luka Modric, who broke the 10-year Messi-Ronaldo monopoly on the prize.
“Today is my sixth Ballon d’Or. It’s a completely different moment, lived with my family and my children,” Messi said.