Theofanis Gekas took the lead in the Bundesliga scoring charts as Frankfurt ended Dortmund's perfect away record.
The visitors appeared fatigued following their Europa League clash against Sevilla that had come just two days ago, and despite seeing little of the ball, Frankfurt looked the more dangerous side in the first half.
Roman Weidenfeller had to be quick off his line to block Theofanis Gekas' effort on 30 minutes, and following the resulting corner, American midfielder Ricardo Clark's free header missed just wide of the left post.
The visitors found some rhythm before the break, but Mario Goetze's volley was comfortably saved, and Nuri Sahin's curling free kick sailed just over the bar.
Benjamin Koehler nearly scored a wonder goal shortly after the break, but the game didn't truly heat up until after the hour mark. On 63 minutes, Ralf Faehrmann was forced to make a save at full extension following Shinji Kagawa's volley, and moments later, a cross deflected off the underside of the Frankfurt crossbar.
The hosts had a few bright moments, but grew increasingly defensive as full time approached. Polish substitutes Jakub Blaszczykowski and Robert Lewandowski injected pace into the Dortmund attack, but were both hesitant to shoot on goal. The pair missed windows to shoot before Barrios' woeful miss, and Gekas' well-taken goal.
Despite their loss, Dortmund remain first in the Bundesliga standings with 43 points, one behind the record twice set by Bayern Munich. Their cushion on first place remains a sizeable 11 points, although Leverkusen could reduce that gap tomorrow. Frankfurt close out an impressive fall campaign by rising to seventh, with 26 points from 17 matches.
For all the German news you can handle, check out Goal.com's Germany homepage and join Goal.com USA's Facebook fan page!