Fulham 2 Shakhtar Donetsk 1
The Cottagers made a flying start, with visiting keeper Andriy Pyatov having to tip over a Brede Hangeland header from Danny Murphy's deep cross within the first 60 seconds.
With just three minutes on the clock the home side went ahead, as Murphy played in a ball to Zamora on the edge of the area and the striker's lay-off allowed Zoltan Gera to slot home a low left-footer under Pyatov.
Reigning UEFA Cup holders Shakhtar were finding it hard to gain a foothold in the game, with Fulham clearly intent on trying to extend their European adventure further.
Murphy flashed a shot wide from 25 yards, before the visitors finally got going and carved out an equaliser just past the half-hour mark.
Darijo Srna shot narrowly wide, just before Ilsinho fed a superb pass through to Luiz Adriano and the Brazilian coolly took the ball around Mark Schwarzer and placed a shot into the unguarded net with his right foot.
Shakhtar then enjoyed the better of the closing minutes of the first half, dominating possession with their Brazilian influence to the fore.
The second half began with both sides looking to find a second goal, with Shakhtar obviously not looking to sit on their one away goal.
With 63 minutes played the Cottagers retook the lead in stunning style as Gera flicked the ball on to Zamora, who thundered home a 25-yard right-foot shot via the underside of the crossbar, with Pyatov rooted to the spot.
Gera's header fell into the arms of Pyatov five minutes later, after good work down the right by Damien Duff.
However, Shakhtar regrouped and came back into the game to leave the tie delicately poised going into the return leg in Ukraine.