Midfielder Reus was the recipient of two defence-splitting passes early on and he sprinted clear both times to beat keeper Kevin Trapp as the hosts raced into a 2-0 lead by the 10th minute.
Dortmund, without suspended striker Robert Lewandowski, had Julian Schieber sent off for a second caution in the 31st minute.
They then had to soak up some pressure before delivering the decisive blow in the 65th minute.
It was Ilkay Gundogan's turn to slice open the Eintracht defence with a well-timed pass to Mario Gotze who turned and fed fellow Germany international Reus in the box to complete his treble and take his tally in the league this season to 11 goals.
"I am just happy to have won this game because Frankfurt were really difficult to play against," Reus told reporters.
"Even with 10 men we were very well organised at the back and waited for the break."
Numerical balance was restored when Eintracht's Takashi Inui received his marching orders in the 74th minute for a second yellow card.
"The sending-off made things very difficult for us especially after having played our Champions League game in midweek," said Dortmund coach Jurgen Klopp, referring to a 2-2 draw at Shakhtar Donetsk.
"But we managed it well. My players worked extremely hard and the goals we scored were well executed."
Dortmund, who bounced back after last week's 4-1 defeat by Hamburg SV, have 42 points while Eintracht are fourth on 37.
Runaway leaders Bayern Munich have 57 points after they won 2-0 at VfL Wolfsburg on Friday thanks to goals from Mario Mandzukic and Arjen Robben.
Striker Stefan Kiessling scored one goal and laid on another as Leverkusen, third on 41 points, sank Augsburg.
Kiessling headed in a Gonzalo Castro free-kick in the 26th minute to join Mandzukic as the Bundesliga's top scorer this season on 15 goals.
The forward, who has been regularly snubbed by Germany coach Joachim Low, also set up Lars Bender for the second goal in the 75th minute as Leverkusen won for the first time in four games.
Sascha Molders grabbed a deserved consolation goal for the visitors in the 89th minute.
Schalke 04, who play Galatasaray in the last 16 of the Champions League in midweek, gave a lacklustre performance as they drew 2-2 at Mainz 05.
Brazilian Michel Bastos equalised twice for Schalke after they had fallen behind. His second goal in the 82nd minute was his third strike since joining the club in the January transfer window.
Schalke are eighth on 30 points after having won just one of their last 11 games.
Hamburg moved into contention for a European spot, beating Borussia Monchengladbach 1-0 courtesy of Rafael van der Vaart's first goal in five months.
The Dutchman cracked the ball into the to
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.