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 Guendogan's turn to slice open the Eintracht defence with a well-timed pass to Mario Goetze 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.
Numerical balance was restored when Eintracht's Takashi Inui received his marching orders in the 74th minute for a second yellow card.
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 Loew, also set up Lars Bender for the second goal in the 75th minute as Leverkusen won for the first time in four games.
Sascha Moelders 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 Moenchengladbach 1-0 courtesy of Rafael van der Vaart's first goal in five months.
The Dutchman cracked the ball into the top corner in the 24th minute as Hamburg rose to sixth place on 34 points.