"We beat the world champions today, but we know that the tournament that we will be playing next year will be a lot more difficult," Brazil coach Luiz Felipe Scolari said. "Now we have more confidence. That's what we needed."
Fred put Brazil ahead in the second minute, Neymar doubled the lead in the 44th with his fourth goal of the tournament and Fred added his fifth in the 47th.
Brazil, which won its third straight Confederations Cup, has not lost a competitive home match since 1975.
Spain, which had not lost a competitive game since its 2010 World Cup opener against Switzerland, had a miserable night. Sergio Ramos sent a penalty kick wide in the 55th and defender Gerard Pique was ejected by Dutch referee Bjorn Kuipers with a straight red card for fouling Neymar in the 68th.
"They were superior on every way," Spain coach Vicente Del Bosque said. "They scored early. This is not an excuse but they had pressure on us all the time."
Eliminated in the quarterfinals of the last two World Cups, the Selecao entered the tournament having not played a competitive match since the 2011 Copa America, Brazil had slipped to 22nd in the FIFA rankings, between Ghana and Mali.
Spain, ranked first for the past 20 months, is the most accomplished national team of the 21st century, winning its first World Cup in 2010 between titles in the 2008 and 2012 European Championships.
But in the stadium that will host the World Cup final on July 14 next year, Brazil dominated La Furia Roja.
There were protests outside the stadium during the match, with police using rubber bullets and tear gas to keep demonstrators from getting too close. A wave of anti-government protests has swept across Brazil in recent weeks, and many affected the Confederations Cup host cities as demonstrators complained of the costs of hosting the World Cup.