The couple were at the Grand Hotel for a dinner hosted by her parents, King Carl XVI Gustaf and Queen Silvia, Hello magazine reported. Madeleine, 30, wore a sequin-studded dress with her hair cascading in curls.
The princess and Chris O'Neill, who was born in Britain and works for a New York hedge fund, are to be married Saturday. They plan to live in New York, where Madeleine works for the World Childhood Foundation.
O'Neill has chosen not to receive a Swedish royal title.
Madeleine has an older sister and brother and is fourth in line to the Swedish throne after her siblings and niece. King Carl's first-born child, Crown Princess Victoria, is his heir under a 1980 change to the constitution.
A garbage fire burning in northeastern Stockholm threatens to leave a foul stench in the air during royal nuptials.
Emergency services said they are doubtful the fire burning at the refuse station in Taby kyrkby will be put out by the 4 p.m. ceremony.
"The fire is continuing to rage and there are quite large amounts of material on fire," said Lars Madsen at the Greater Stockholm fire department.
Although winds have been moving the stench of burning garbage away from the cathedral thus far, they could change directions Saturday, the news report said.
Dennis Rodman pledges to end trips to North Korea
Scarlett Johansson steps out with fiance after pregnancy reveal