Martin O'Neill suffered a frustrating defeat against his former club, despite seeing his side take the lead through Jack Colback in only the third minute.
McGinn netted twice to make it 2-1 before 16 minutes had been played, while Kortney Hause's 61st-minute flick provided some breathing room as Villa secured a third consecutive win for the first time since November to lift Dean Smith's team to within touching distance of the top six.
Forest, who had won their previous four home games to give themselves hope of a late play-off push, took the lead in slightly fortunate fashion when, after being fed into space down the left by Joe Lolley, Colback's attempted cross towards the far post drifted over the head of Jed Steer and inside the upright.
Villa were level four minutes later as a player Forest had tried to sign a few years ago in McGinn offered a reminder of what they had missed out on.
Having been fed the ball by Ahmed Elmohamady, McGinn cut into the box with purpose before lashing a low shot across goal and inside the far post.
Forest had a let-off when Tammy Abraham, who had scored four goals last time these two sides met, planted a free header wide.
In the 15th minute, McGinn plundered his second following a poor clearance from Pele. With Forest's defence standing still he took advantage and lashed a precise low shot into the bottom corner from 22 yards.
Pele had the chance to level for Forest but cleared the bar with a rising shot.
And it was Villa who pushed again, with Costel Pantilimon having to make an outstanding save to keep out a shot, hit crisply on the swivel, from Abraham.
Within a minute of the second half kicking off, Yohan Benalouane had the ball in the net but his header was harshly ruled out for a push.
Lolley also drove a volley wide for Forest as they went in search of an equaliser.
Alexander Milosevic brought down Jack Grealish to give Villa a dangerous free-kick. Conor Hourihane's delivery into the box was attacked by Hause who got enough of a touch on it to guide it beyond Pantilimon in the 61st minute.
Substitute Daryl Murphy was denied a lifeline for Forest by a strong save but McGinn, who had previously gone close with a header, was only denied a third goal by a combination of the woodwork and Pantilimon.