Jose Guerrero opened the scoring before Nigel de Jong doubled the advantage in the second half. Frankfurt pulled a goal back through Sotirios Kyrgiakos but Guerrero got his second with Mohamed Zidan rounded off the scoring.
As a result, Huub Stevens' team jump to third place with 41 points, six points adrift of leaders Bayern Munich but three points clear of fourth-placed Bayer Leverkusen, who lost 2-0 at VfL Bochum.
Frankfurt came into the match in form, having collected four wins in the last five games, but defeat at Hamburg leaves them four points adrift of a UEFA Cup spot.
The home side opened the scoring as early as the fifth minute. Rafael van der Vaart's fine cross into the box was headed to the right corner by Guerrero, with Frankfurt keeper Oka Nikolov's slip allowing the ball to get past him.
Guerrero nearly doubled the lead six minutes later but his first-time effort from 10 yards was cleared for a corner. The Frankfurt defence continued to lead a charmed life. Nikolov atoned for his earlier error by fending away Bastian Reinhardt's header and then cleared at the goalline, with Ivica Olic waiting to pounce.
Frankfurt had two fine opportunities to equalise. Hamburg keeper Frank Rost fought off Christoph Spycher's 18-yarder on the half-hour and repeated the trick from Michael Fink just before the break.
Hamburg pulled ahead further ahead in the 57th minute, when de Jong met a van der Vaart free kick with a diving header from seven yards.
Frankfurt pulled a goal back with 20 minutes to play, Kyrgiakos heading home Markus Weissenberger's free-kick to the near left post.
Guerrero re-established a two-goal lead in the 79th minute. Nikolov stopped van der Vaart's shot but could not hold it and Guerrero blasted the ball into the upper netting.
Substitute Zidan made it 4-1 four minutes later, when the Egyptian took Guerrero's through ball and beat Nikolov.
| Teams |
| Hamburg SV |
Eintracht Frankfurt |
| 1 Frank Rost |
1 Oka Nikolov |
| 4 Bastian Reinhardt |
27 Sotirios Kyrgiakos |
| 5 Joris Mathijsen |
16 Christoph Spycher |
| 19 Jerome Boateng |
23 Marco Russ |
| 23 Rafael Van der Vaart |
3 Aaron Galindo |
| 8 Nigel De Jong |
6 Michael Fink |
| 15 Piotr Trochowski |
32 Faton Toski |
| 20 Guy Demel |
20 Junichi Inamoto |
| 14 David Jarolim |
7 Benjamin Köhler |
| 9 José Paolo Guerrero |
17 Martin Fenin |
| 11 Ivica Olic |
8 Evangelos Mantzios |
| Substitutes |
| 7 Mohamed Zidan |
Ioannis Amanatidis 18 |
| 10 Vincent Kompany |
Markus Weissenberger 10 |
| 30 Collin Benjamin |
Jan Zimmermann 28 |
| 12 Wolfgang Hesl |
Mounir Chaftar 31 |
| 24 Miso Brecko |
Caio 30 |
| 22 Eric Maxim Choupo-Moting |
|
| 16 Anton Putsilo |
|
| Substitutions |
Vincent Kompany for Piotr Trochowski (56)
|
Markus Weissenberger for Faton Toski (61)
|
Mohamed Zidan for Ivica Olic (74)
|
Ioannis Amanatidis for Benjamin Köhler (79)
|
Anton Putsilo for David Jarolim (85)
|
Mounir Chaftar for Martin Fenin (88) |