Should Bolsonaro win, he would become the latest in a global wave of hard-right nationalists to triumph at the ballot box, bringing unpredictable new leadership into a region still struggling to foster democracy after years of dictatorship.
With 96 percent of ballots counted, Bolsonaro has 55.5 percent of the votes.
Voters in Sunday's runoff election apparently looked past warnings that the brash former army captain would erode democracy and embraced a chance for radical change after years of turmoil.
Bolsonaro went into Sunday the clear front-runner after getting 46 percent of the vote to Haddad's 29 percent in the first round of the election October 7, which had 13 contenders.
Haddad narrowed Bolsonaro's lead to 8 percentage points in an Ibope poll released late Saturday, a survey that gave him 46 percent compared with Bolsonaro's 54 percent. In the end, Haddad was unable to overcome that tainted legacy.
Bolsonaro's economic advisers, led by University of Chicago-trained Paulo Guedes, plan to slash import barriers and embark on new free-trade talks.
People set off fireworks on Rio de Janeiro's Copacabana beach, and vehicle drivers honked their horns across the city Sunday. In Brazil's commercial capital of Sao Paulo, Bolsonaro's win was greeted with fireworks and the honking of vehicle horns.
Bolsonaro's all but certain victory in the second round has sparked a vibrant protest movement, that saw thousands of women taking to streets to say "Ele nao" or "Not him" in Portuguese.
One of the most important endorsements, particularly for young people, came from Youtuber Felipe Neto, whose channel has almost 27 million followers.
Bolsonaro, 63, a long-time congressman, will take office on January 1.
The center-right leader took over from Lula's successor, Dilma Rousseff, after she was impeached in 2016 for financial wrongdoing in office, ending the Workers' Party's 13 years in power.
Final results are expected later Sunday.
"I hope that with these elections we're not signing a blank check again, and that we don't close our eyes to everything that has happened", said Jose Nobrega, a 53-year-old waiter in Mare, one of Rio's most violent neighborhoods.
The second round of Brazilian general elections started on Sunday morning, with voters across the country heading to the polls to choose a new president and 14 state governors.
Several hundred PT demonstrators protested Bolsonaro's victory on Sao Paulo's main Paulista Avenue before police dispersed them using tear gas.
The vote had been calm and orderly across the country, said Laura Chinchilla, the former president of Costa Rica who is head of the Organization of American States' Electoral Observation Mission.
Similar to how Trump's campaign had Donald Trump Jr. and other children sometimes speak for their dad, Bolsonaro has often depended on his three eldest sons to float ideas, deny critical press reports and make outlandish claims.
But he voted for Haddad because of Bolsonaro's "discourse of hate and intolerance".
Voting for the presidency is in full swing in Latin America's largest nation.
The former army captain trounced Fernando Haddad, a leftist former Sao Paulo mayor whose Workers' Party became synonymous with graft, winning 56 percent of the vote to Haddad's 44 percent with nearly all votes counted.
Carlos Bolsonaro, who is a city councilman in Rio de Janeiro, recently tweeted that the media and a major pollster "ignore growing rallies in favor of Bolsonaro, including in the farthest corners of Brazil, and they try to create a narrative of Bolsonaro's stagnation (in the polls)".