Police used tear gas against the rioters, who threw petrol bombs and stones at armed officers and tried to break through the security cordon for the march.
The protesters then set fire to the garage of the ruling Democratic Party's headquaters.
Around 40 people were injured, including at least two police officers.
A number of people were arrested.
This was the first Gay Pride parade in Serbia since a march in 2001 was broken up in violent clashes provoked by far-right extremists.
The BBC's Mark Lowen in Belgrade says firefighters are working to extinguish the fire at the Democratic Party headquarters.
While the Gay Pride parade was moving though the city, several hundred protesters shouted "death to homosexuals" while trying to get close to the march.
Thousands of police had sealed off central Belgrade to protect the event.
( Read moreCollapse )
Update: Euronews footage from today:
Maaaan, I really thought this year was going to be different. Hope the injured ones aren't seriously injured. :/