(CNN) -- Premier League minnows Fulham are through to the Europa League final, where they will face Spanish giants Atletico Madrid, after coming from behind to beat Bundesliga side Hamburg 2-1 on Thursday.
Following a goalless first leg in Germany, the visitors knew an away goal would count double -- and they looked to be on course to appear in the final, which is being played on their own ground, when taking a 22nd minute lead.
Danny Murphy fouled Jose Ze Roberto to give away a free-kick 30 yards out, and Croatian Mladen Petric stepped up to fire an unstoppable curling free-kick into the top corner of the net.
But the London side, who have overcome Juventus, Wolfsburg and Shakhtar Donetsk in their magical European journey, levelled in the 69th minute when Murphy's pass caught out the Hamburg defence and Welsh winger Simon Davies superbly controlled the ball before finding the net.
Then, with 14 minutes left on the clock, Roy Hodgson's side netted an unlikely winner.
A Davies corner fell nicely in the area for Zoltan Gera and the Hungarian was allowed to turn and fire home in one movement to spark wild scenes of jubilation.
However, dreams of an all-English final bit the dust at Anfield, as Atletico lost 2-1 to Liverpool -- but went through on away goals.
Atletico led 1-0 from the first leg, but Liverpool were on top in the opening stages and went ahead just before half-time when Italian midfielder Alberto Aquilani superbly netted a half-volley from the edge of the area.
That goal sent the match into extra time, and Liverpool looked set to secure their final place when Yossi Benayoun was left unmarked on the left of the area to fire into the corner of the net.
Diego Forlan had scored the only goal at the Vicente Calderon stadium last week and the Uruguayan striker was to win it for Atletico just seven minutes later when Jose Antonio Reyes' cross from the right was slammed home by Forlan from close range.