Reyna, the 17-year-old American, served up three assists in the absence of their top provider Jadon Sancho, sidelined with an infection.
Norwegian forward Haaland scored two of those goals either side of Emre Can's 47th minute header, to take his tally to 17 goals from 18 Bundesliga games this year.
Haaland then set up Felix Passlack for their fourth in stoppage time.
It was the first win in three games for the Ruhr valley club after last week's shock loss to Augsburg and Wednesday's defeat to Bayern Munich in the German Super Cup.
It took Dortmund half an hour to get started and they scored with their first chance when Haaland slotted in after Reyna had combined well with Marco Reus in the 31st minute.
They missed several more chances to score before the break but Can quickly made amends, drilling in a powerful header in the 47th from a Reyna corner.
Haaland then latched onto a flawless Reyna through ball to beat the Freiburg keeper Florian Muller once more in the 66th minute, and he could have bagged a hat trick in stoppage time with only Muller to beat.
Instead he chose to lay it off for Passlack for an easy tap-in.
Dortmund have six points from their three league games, with Eintracht Frankfurt top on seven after their 2-1 win over Hoffenheim.