Borussia Dortmund reached the last eight of the Champions League despite losing to Zenit St Petersburg in the second leg of their tie.

Last year's finalists carried a 4-2 aggregate lead into the home leg but Hulk reduced the deficit when he fired in a sensational 25-yard shot.

Sebastian Kehl restored the advantage with a header shortly before half-time.

Venezuela striker Jose Rondon's 73rd-minute header ensured a nervy final few moments for the German side.

Kehl's still got it

Michael Zorc (35 years v Galatasaray in 1997) is the only player older than Sebastian Kehl, 34, to score a Champions League goal for Dortmund

Dortmund deserved to lose the match but were the better team over the two ties. They will, however, need to play far better in the quarter-finals if they are going to advance further. And they will have to do without leading striker Robert Lewandowski, who will be suspended for the first leg after an early booking for deliberate handball.

Jurgen Klopp's side have been decimated by key injuries this season and at times on Wednesday the absence in quality showed.

They stuck to type by dominating possession for long periods, but the sharp passing that has also been their trademark under their personable coach was missing.

"They were fresh, they took risks because they had to and we had to put a huge amount of work into it," said Klopp.

Nevertheless they are through at the expense of Zenit, whose hopes of progressing were severely damaged by the defeat in the first leg.

Coach Luciano Spalletti was subsequently sacked and eventually replaced by former Chelsea and Tottenham coach Andre Villas-Boas, who begins his tenure on Thursday.

Hulk scores for Zenit

Hulk scored a fabulous goal for Zenit in the first half at the Dortmund Stadium

The Portuguese would have been buoyed by Zenit's start and the forward threat of Brazilian Hulk.

The 27-year-old, who will be hoping he is involved with the national team at the World Cup, gave the Russian club hope when he struck a rocket of a shot that swerved at the last moment to beat keeper Roman Weidenfeller.

Zenit should have built on the goal but instead allowed Dortmund to come back into the game.

The home side had a golden chance prior to the goal when summer signing Pierre-Emerick Aubameyang nodded wide from three yards, however captain Kehl made no mistake with a header six minutes from the break.

Full-back Marcel Schmelzer was the provider for the 34-year-old, whose effort was inadvertently pushed into the net by keeper Vyacheslav Malafeev.

Zenit showed plenty of determination in the second half but little guile in Dortmund's final third.

They breached the last line of defence again with one of their few opportunities when substitute Rondon stooped low to head in Domenico Criscito's cross from the left.

There were still 17 minutes remaining for Zenit to get the two goals required, but they only managed one more effort on goal through Axel Witsel, whose low strike was turned round the post by the competent Weidenfeller.

"We did not communicate at times. There was nervousness, you could see it. That is why we deserved to go through. The players battled extremely hard," added the Dortmund coach.

Lineup, Bookings (4) & Substitutions (6)

Borussia Dortmund

  • 01 Weidenfeller
  • 26 Piszczek
  • 29 Schmelzer (Durm - 77' )
  • 18 Sahin
  • 25 Papastathopoulos
  • 15 Hummels
  • 17 Aubameyang (Hofmann - 91' )
  • 05 Kehl Booked
  • 09 Lewandowski Booked
  • 10 Mkhitaryan (Jojic - 69' Booked )
  • 19 Großkreutz

Substitutes

  • 02 Friedrich
  • 07 Hofmann
  • 14 Jojic
  • 20 Langerak
  • 21 Kirch
  • 23 Schieber
  • 37 Durm

Zenit St Petersburg

  • 16 Malafeev
  • 22 Anyukov
  • 04 Criscito
  • 20 Faizulin (Smolnikov - 83' )
  • 14 Hubocan
  • 06 Lombaerts Booked (Neto - 45' )
  • 07 Hulk
  • 28 Witsel
  • 11 Kerzhakov (Rondón - 62' )
  • 10 Danny
  • 17 Shatov

Substitutes

  • 01 Lodygin
  • 13 Neto
  • 18 Zyryanov
  • 19 Smolnikov
  • 24 Lukovic
  • 29 Rondón
  • 44 Tymoshchuk
Ref: Alberto Undiano Mallenco

Match Stats

Shots

12 9

On target

3 5

Corners

8 1

Fouls

18 14

Live Text Commentary

Full time

Full Time Match ends, Borussia Dortmund 1, Zenit St Petersburg 2.

90:00 +3:03 Full time

Full Time Second Half ends, Borussia Dortmund 1, Zenit St Petersburg 2.

90:00 +1:57

Hulk (Zenit St Petersburg) wins a free kick on the left wing.

90:00 +1:57

Foul by Lukasz Piszczek (Borussia Dortmund).

90:00 +0:32

Delay over. They are ready to continue.

90:00 +0:27 Substitution

Substitution Substitution, Borussia Dortmund. Jonas Hofmann replaces Pierre-Emerick Aubameyang.

89:35

Delay in match Tomas Hubocan (Zenit St Petersburg) because of an injury.

89:02

Alexander Anyukov (Zenit St Petersburg) wins a free kick in the defensive half.

89:02

Foul by Robert Lewandowski (Borussia Dortmund).

88:25

Attempt saved. Oleg Shatov (Zenit St Petersburg) right footed shot from outside the box is saved in the centre of the goal.

87:14

Corner, Zenit St Petersburg. Conceded by Roman Weidenfeller.

87:08

Attempt saved. Axel Witsel (Zenit St Petersburg) right footed shot from outside the box is saved in the bottom left corner.

86:03

Axel Witsel (Zenit St Petersburg) wins a free kick in the defensive half.

86:03

Foul by Pierre-Emerick Aubameyang (Borussia Dortmund).

84:50

Foul by Hulk (Zenit St Petersburg).

84:50

Lukasz Piszczek (Borussia Dortmund) wins a free kick in the defensive half.

84:24

Attempt blocked. Hulk (Zenit St Petersburg) left footed shot from outside the box is blocked.

83:52

Hulk (Zenit St Petersburg) wins a free kick on the left wing.

83:52

Foul by Milos Jojic (Borussia Dortmund).

83:39

Danny (Zenit St Petersburg) wins a free kick in the attacking half.

83:39

Foul by Pierre-Emerick Aubameyang (Borussia Dortmund).

83:09 Substitution

Substitution Substitution, Zenit St Petersburg. Igor Smolnikov replaces Viktor Faizulin.

79:19

Foul by Salomón Rondón (Zenit St Petersburg).

79:19

Sokratis (Borussia Dortmund) wins a free kick in the defensive half.

77:23

Foul by Alexander Anyukov (Zenit St Petersburg).

77:23

Robert Lewandowski (Borussia Dortmund) wins a free kick in the defensive half.

76:21 Substitution

Substitution Substitution, Borussia Dortmund. Erik Durm replaces Marcel Schmelzer because of an injury.

74:20 Booking

Booking Milos Jojic (Borussia Dortmund) is shown the yellow card for a bad foul.

74:16

Foul by Milos Jojic (Borussia Dortmund).

74:16

Axel Witsel (Zenit St Petersburg) wins a free kick in the defensive half.

73:15

Marcel Schmelzer (Borussia Dortmund) wins a free kick in the defensive half.

73:15

Foul by Hulk (Zenit St Petersburg).

72:10 Goal scored

Goal! Goal! Borussia Dortmund 1, Zenit St Petersburg 2. Salomón Rondón (Zenit St Petersburg) header from very close range to the centre of the goal. Assisted by Domenico Criscito with a cross.

71:42

Foul by Sokratis (Borussia Dortmund).

71:42

Salomón Rondón (Zenit St Petersburg) wins a free kick in the defensive half.

70:58

Foul by Hulk (Zenit St Petersburg).

70:58

Milos Jojic (Borussia Dortmund) wins a free kick in the attacking half.

70:22

Corner, Borussia Dortmund. Conceded by Axel Witsel.

69:09

Luís Neto (Zenit St Petersburg) wins a free kick in the defensive half.

69:09

Foul by Sokratis (Borussia Dortmund).

68:38

Corner, Borussia Dortmund. Conceded by Alexander Anyukov.

68:20 Substitution

Substitution Substitution, Borussia Dortmund. Milos Jojic replaces Henrikh Mkhitaryan.

67:45

Corner, Borussia Dortmund. Conceded by Hulk.

67:24

Attempt blocked. Pierre-Emerick Aubameyang (Borussia Dortmund) right footed shot from outside the box is blocked.

66:23

Foul by Luís Neto (Zenit St Petersburg).

66:23

Robert Lewandowski (Borussia Dortmund) wins a free kick in the attacking half.

65:02

Attempt blocked. Henrikh Mkhitaryan (Borussia Dortmund) right footed shot from outside the box is blocked. Assisted by Kevin Großkreutz.

64:03

Attempt missed. Nuri Sahin (Borussia Dortmund) left footed shot from outside the box misses to the right. Assisted by Henrikh Mkhitaryan.

62:03 Substitution

Substitution Substitution, Zenit St Petersburg. Salomón Rondón replaces Alexander Kerzhakov.

59:30

Dangerous play by Robert Lewandowski (Borussia Dortmund).

59:30

Tomas Hubocan (Zenit St Petersburg) wins a free kick in the defensive half.

59:01

Foul by Pierre-Emerick Aubameyang (Borussia Dortmund).

59:01

Danny (Zenit St Petersburg) wins a free kick in the defensive half.

58:47

Attempt missed. Pierre-Emerick Aubameyang (Borussia Dortmund) right footed shot from outside the box is too high. Assisted by Nuri Sahin.

56:45

Foul by Axel Witsel (Zenit St Petersburg).

56:45

Robert Lewandowski (Borussia Dortmund) wins a free kick in the defensive half.

54:20 Booking

Booking Sebastian Kehl (Borussia Dortmund) is shown the yellow card for a bad foul.

54:14

Hulk (Zenit St Petersburg) wins a free kick in the defensive half.

54:14

Foul by Sebastian Kehl (Borussia Dortmund).

53:12

Attempt missed. Viktor Faizulin (Zenit St Petersburg) left footed shot from outside the box misses to the left. Assisted by Danny.

51:06

Corner, Borussia Dortmund. Conceded by Alexander Anyukov.

50:24

Attempt missed. Hulk (Zenit St Petersburg) left footed shot from outside the box is just a bit too high from a direct free kick.

49:42

Foul by Sebastian Kehl (Borussia Dortmund).

49:42

Alexander Kerzhakov (Zenit St Petersburg) wins a free kick in the attacking half.

45:00

Second Half begins Borussia Dortmund 1, Zenit St Petersburg 1.

45:00 Substitution

Substitution Substitution, Zenit St Petersburg. Luís Neto replaces Nicolas Lombaerts.

45:00 +1:03 Half time

Half Time First Half ends, Borussia Dortmund 1, Zenit St Petersburg 1.

45:00 +0:33

Offside, Zenit St Petersburg. Tomas Hubocan tries a through ball, but Danny is caught offside.

45:00 +0:06

Axel Witsel (Zenit St Petersburg) wins a free kick in the attacking half.

45:00 +0:06

Foul by Henrikh Mkhitaryan (Borussia Dortmund).

43:31

Foul by Tomas Hubocan (Zenit St Petersburg).

43:31

Robert Lewandowski (Borussia Dortmund) wins a free kick in the defensive half.

42:37

Delay over. They are ready to continue.

42:25

Delay in match Robert Lewandowski (Borussia Dortmund) because of an injury.

40:31

Alexander Anyukov (Zenit St Petersburg) wins a free kick in the defensive half.

40:31

Foul by Marcel Schmelzer (Borussia Dortmund).

37:45 Goal scored

Goal! Goal! Borussia Dortmund 1, Zenit St Petersburg 1. Sebastian Kehl (Borussia Dortmund) header from very close range to the bottom left corner. Assisted by Marcel Schmelzer with a cross.

37:15

Foul by Viktor Faizulin (Zenit St Petersburg).

37:15

Nuri Sahin (Borussia Dortmund) wins a free kick in the attacking half.

33:08

Attempt blocked. Marcel Schmelzer (Borussia Dortmund) right footed shot from outside the box is blocked.

33:04

Attempt blocked. Nuri Sahin (Borussia Dortmund) left footed shot from outside the box is blocked.

31:54

Foul by Danny (Zenit St Petersburg).

31:54

Henrikh Mkhitaryan (Borussia Dortmund) wins a free kick in the attacking half.

31:38

Foul by Nicolas Lombaerts (Zenit St Petersburg).

31:38

Robert Lewandowski (Borussia Dortmund) wins a free kick in the attacking half.

30:04

Dangerous play by Alexander Kerzhakov (Zenit St Petersburg).

30:04

Kevin Großkreutz (Borussia Dortmund) wins a free kick in the defensive half.

24:10

Corner, Borussia Dortmund. Conceded by Viktor Faizulin.

23:23

Attempt missed. Mats Hummels (Borussia Dortmund) header from the centre of the box misses to the left. Assisted by Nuri Sahin with a cross following a set piece situation.

22:45 Booking

Booking Nicolas Lombaerts (Zenit St Petersburg) is shown the yellow card for a bad foul.

22:38

Foul by Nicolas Lombaerts (Zenit St Petersburg).

22:38

Pierre-Emerick Aubameyang (Borussia Dortmund) wins a free kick on the right wing.

22:02

Attempt missed. Sokratis (Borussia Dortmund) header from the centre of the box is too high. Assisted by Henrikh Mkhitaryan with a cross following a corner.

21:30

Corner, Borussia Dortmund. Conceded by Vyacheslav Malafeev.

21:26

Attempt saved. Kevin Großkreutz (Borussia Dortmund) right footed shot from outside the box is saved in the top right corner. Assisted by Henrikh Mkhitaryan.

17:57 Booking

Booking Robert Lewandowski (Borussia Dortmund) is shown the yellow card for hand ball.

17:44

Hand ball by Robert Lewandowski (Borussia Dortmund).

17:10

Corner, Borussia Dortmund. Conceded by Domenico Criscito.

15:14 Goal scored

Goal! Goal! Borussia Dortmund 0, Zenit St Petersburg 1. Hulk (Zenit St Petersburg) left footed shot from outside the box to the top left corner.

14:22

Domenico Criscito (Zenit St Petersburg) wins a free kick in the defensive half.

14:22

Foul by Pierre-Emerick Aubameyang (Borussia Dortmund).

13:13

Delay over. They are ready to continue.

12:50

Delay in match Alexander Anyukov (Zenit St Petersburg) because of an injury.

12:09

Axel Witsel (Zenit St Petersburg) wins a free kick in the attacking half.

12:09

Foul by Henrikh Mkhitaryan (Borussia Dortmund).

11:22

Attempt saved. Robert Lewandowski (Borussia Dortmund) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Nuri Sahin.

9:20

Corner, Borussia Dortmund. Conceded by Axel Witsel.

6:45

Offside, Zenit St Petersburg. Axel Witsel tries a through ball, but Danny is caught offside.

6:44

Attempt saved. Axel Witsel (Zenit St Petersburg) left footed shot from outside the box is saved in the bottom right corner. Assisted by Oleg Shatov.

4:45

Attempt missed. Pierre-Emerick Aubameyang (Borussia Dortmund) header from very close range is close, but misses to the left. Assisted by Marcel Schmelzer with a cross.

2:55

Foul by Axel Witsel (Zenit St Petersburg).

2:55

Robert Lewandowski (Borussia Dortmund) wins a free kick in the defensive half.

0:48

Viktor Faizulin (Zenit St Petersburg) wins a free kick in the defensive half.

0:48

Foul by Henrikh Mkhitaryan (Borussia Dortmund).

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers