Video report by ITV News Correspondent Neil Connery
The Brazilian leader has consistently downplayed the Covid-19 pandemic and has fiercely criticised efforts by governors and mayors to impose measures to control the outbreak.
He has previously called the respiratory disease the "sniffles".
Speaking to reporters in the capital Brasilia, Mr Bolsonaro - wearing a mask - confirmed he had tested positive for the virus but said: "I'm well, normal. I even want to take a walk around here, but I can’t due to medical recommendation".
Brazil, the world's sixth most populous nation, is one of the global hotspots of the pandemic having reported more than 1.6 million confirmed cases so far - the second highest number worldwide.
The country's Covid-19 death toll has exceeded 65,000 according to the latest data from Johns Hopkins University.
President Bolsonaro has, however, repeatedly appeared in public to shake hands with supporters and mingle with crowds during the pandemic - at times, without a mask.
The 65-year-old previously said that his history as an athlete would protect him from the virus, and that it would be nothing more than a "little flu" were he to contract it.
Mr Bolsonaro has repeatedly pushed for a quick reopening of the country, to stop the deterioration of Brazil’s already faltering economy.
In April, he called fired his health minister, and called for social isolation policies to end nationwide - despite commitments by many states to maintain them.
Over the weekend, the Brazilian leader celebrated the US Independence Day with the nation's ambassador to Brazil.
Pictures on social media showed him with his arm around the ambassador alongside several ministers and aides. None wore masks, despite being in close quarters.
The US Embassy said on Twitter on Monday that Ambassador Todd Chapman is not showing any coronavirus symptoms but would be tested.
Bolsonaro tested negative three times in March after meeting with President Donald Trump in Florida. Multiple members of his delegation to the US were later reported to be infected with the virus.