Manchester City missed out on a Europa League place after ending their miserable Champions League campaign with a defeat by Borussia Dortmund.
Ajax's defeat by Real Madrid meant City would have finished third in Group D had they beaten the German champions.
But Dortmund posed the greater threat, forcing a series of saves from Joe Hart before Julian Schieber slid in to score from Jakub Blaszczykowski's cross.
City crash out of Europe without a win in any of their six group games.
Their haul of three points is a meagre return given the vast resources at Roberto Mancini's disposal, and is the lowest by an English club in the 20-year history of the competition.
City crash out with new low
Manchester City's tally of three points from their six group games replaces Blackburn's record in 1995-96 as the worst by an English team in the Champions League. Rovers finished bottom of a group containing Spartak Moscow, Legia Warsaw and Rosenborg on four points, with their only victory coming in their final game against Rosenborg when Mike Newell scored a nine-minute hat-trick.
City become the first Premier League side not to manage a single group win, and missing out on the consolation prize of the Europa League means their seeding is likely to drop further when they return to Europe next season.
On this evidence, a vast improvement is required if they are to make any impact. If it had not been for some superb saves by Hart, City would have lost by an even greater margin to a depleted Dortmund side without many of their stars.
Jurgen Klopp's side were already through as group winners so the onus was on the visitors to chase victory, especially with Ajax behind early on in Madrid.
But Mancini's men created little in the first 45 minutes, and their only effort on goal was a bouncing shot by Edin Dzeko that Roman Weidenfeller pushed round his post.
Carlos Tevez worked hard and covered a lot of ground but, without the injured David Silva, City were lacking a spark in attack.
Dortmund also began slowly before creating a host of chances either side of half-time.
Hart, City's hero when they snatched a point against Dortmund at the Etihad Stadium in October, came to their rescue before the break when he got his fingertips to a Marco Reus drive and dived to keep out Ivan Perisic's curling shot.
Mancini unfazed by European exit
The home side went closer still when Mats Hummels was just unable to turn in an inviting free-kick from Blaszczykowski, who came on for Marco Reus at the interval.
Edin Dzeko headed straight at Weidenfeller as City tried to respond but the chances kept coming for Dortmund, with Hart tipping a swerving Perisic volley over the bar and reacting well to beat away Kevin Grosskreutz's fierce strike.
So it was no surprise when they took the lead just before the hour mark, Schieber gratefully gobbling up Blaszczykowski's delightful low cross.
The scorer almost added a second soon after when Hart kept out his chip and City's response was muted at best, despite the best efforts of Tevez.
The Argentine striker and his compatriot Sergio Aguero forced smart saves from Weidenfeller but Hart remained the busier goalkeeper, stopping a Robert Lewandowski effort with his face.
In the end City went out meekly. They had known before kick-off they could progress no further in the Champions League and this lethargic performance was an appropriate way to end a hugely disappointing campaign.
A far better display will be needed when the Premier League champions return to domestic action on Sunday in what promises to be a pivotal clash with title rivals Manchester United.
90:00+3:11 The final whistle goes and the game is over.
90:00+1:13 Roman Weidenfeller takes the free kick.
90:00+1:13 Booking Mario Balotelli receives a yellow card for dissent.
90:00+1:06 Mario Balotelli challenges Augusto Felipe Santana unfairly and gives away a free kick.
88:34 The assistant referee signals for offside against Mario Balotelli. Roman Weidenfeller takes the free kick.
87:07 Marcel Schmelzer takes the direct free kick.
87:07 Substitution Oliver Kirch goes off and Leonardo Bittencourt comes on.
87:07 Marcel Schmelzer fouled by Sergio Aguero, the ref awards a free kick.
86:09 Unfair challenge on Augusto Felipe Santana by Carlos Tevez results in a free kick. Free kick taken by Augusto Felipe Santana.
85:04 Sergio Aguero takes a shot. Fantastic save by Roman Weidenfeller.
82:03 Robert Lewandowski takes a shot. Save by Joe Hart.
81:18 Moritz Leitner has shot on goal from just outside the box which goes wide of the right-hand upright.
79:29 The offside flag is raised against Pablo Zabaleta. Roman Weidenfeller restarts play with the free kick.
78:42 The ball is sent over by Sergio Aguero, clearance by Mats Hummels.
77:37 Robert Lewandowski has an effort at goal from outside the penalty box missing to the wide right of the goal.
76:02 Substitution Robert Lewandowski replaces Julian Schieber.
75:40 Shot by Moritz Leitner from deep inside the penalty area misses to the right of the goal.
72:12 Mario Balotelli is caught offside. Indirect free kick taken by Roman Weidenfeller.
68:46 The referee blows for offside. Joleon Lescott restarts play with the free kick.
67:38 Substitution (Man City) makes a substitution, with Pablo Zabaleta coming on for Samir Nasri.
66:54 Corner from right by-line taken by Gareth Barry.
66:37 Carlos Tevez takes a shot. Save made by Roman Weidenfeller.
65:25 Mats Hummels challenges Gareth Barry unfairly and gives away a free kick. Free kick taken by Gareth Barry.
64:05 Substitution Mario Balotelli on for Edin Dzeko.
63:38 Ivan Perisic takes a shot from just outside the penalty area clears the crossbar.
61:14 Corner taken by Samir Nasri.
59:18 The referee blows for offside. Indirect free kick taken by Roman Weidenfeller.
58:19 Julian Schieber takes a shot from 18 yards. Save by Joe Hart.
57:01 Booking Joleon Lescott shown a yellow card.
56:33 Assist on the goal came from Jakub Blaszczykowski.
56:33 GOAL - Julian Schieber:Borussia Dortmund 1 - 0 Man City Julian Schieber gets on the score sheet with a goal from inside the six-yard box low into the middle of the goal. Borussia
Dortmund 1-0 Man City.
56:05 Substitution Sergio Aguero replaces Scott Sinclair.
53:47 Moritz Leitner decides to take the corner short.
53:22 Kevin Grosskreutz takes a shot. Save by Joe Hart.
52:53 Moritz Leitner decides to take a short corner.
52:29 Effort from 12 yards by Ivan Perisic. Save by Joe Hart.
47:28 Foul by Samir Nasri on Jakub Blaszczykowski, free kick awarded. The free kick is swung in left-footed by Marcel Schmelzer.
46:05 Francisco Javi Garcia fouled by Moritz Leitner, the ref awards a free kick. Francisco Javi Garcia takes the free kick.
45:39 Samir Nasri delivers the ball, Edin Dzeko takes a shot. Roman Weidenfeller makes a comfortable save.
45:01 The second half kicks off.
45:01 Substitution Jakub Blaszczykowski is brought on as a substitute for Marco Reus.
45:00+0:06 The half-time whistle blows.
43:46 Corner taken right-footed by Samir Nasri from the left by-line, Edin Dzeko has a headed effort at goal from close in which
goes wide right of the target.
43:12 Ivan Perisic takes a shot. Comfortable save by Joe Hart.
42:54 Julian Schieber takes a shot. Vincent Kompany gets a block in.
37:41 The referee blows for offside against Carlos Tevez. Indirect free kick taken by Roman Weidenfeller.
37:12 Samir Nasri takes a inswinging corner from the left by-line played to the near post, Mats Hummels makes a clearance.
35:49 Marco Reus takes a shot. Save by Joe Hart.
34:10 Marco Reus takes a outswinging corner.
33:08 Samir Nasri takes a inswinging corner from the left by-line played to the near post.
32:46 Edin Dzeko takes a shot. Save by Roman Weidenfeller.
30:52 Handball by Sisenando Maicon. Direct free kick taken by Marcel Schmelzer.
28:56 Marco Reus crosses the ball in from the free kick, save by Joe Hart.
28:56 Booking Francisco Javi Garcia booked for unsporting behaviour.
28:52 Foul by Francisco Javi Garcia on Ivan Perisic, free kick awarded.
28:03 Marco Reus has an effort at goal from outside the box which goes wide right of the target.
25:33 Headed cross/shot by Ivan Perisic, comfortable save by Joe Hart.
24:14 Unfair challenge on Oliver Kirch by Samir Nasri results in a free kick. Marcel Schmelzer takes the direct free kick.
23:29 Samir Nasri takes a outswinging corner.
22:48 Oliver Kirch is ruled offside. Joe Hart restarts play with the free kick.
17:11 Edin Dzeko is flagged offside by the assistant referee. Roman Weidenfeller restarts play with the free kick.
13:20 Edin Dzeko concedes a free kick for a foul on Augusto Felipe Santana. Augusto Felipe Santana restarts play with the free kick.
11:32 Oliver Kirch takes a shot. Comfortable save by Joe Hart.
11:00 Edin Dzeko is caught offside. Free kick taken by Augusto Felipe Santana.
10:19 Edin Dzeko is ruled offside. Moritz Leitner takes the free kick.
7:23 Julian Schieber challenges Gareth Barry unfairly and gives away a free kick. Joleon Lescott takes the direct free kick.
2:09 Free kick awarded for an unfair challenge on Moritz Leitner by Gareth Barry. Augusto Felipe Santana takes the free kick.
1:43 A cross is delivered by Scott Sinclair.
1:12 Outswinging corner taken from the right by-line by Samir Nasri.
0:18 Foul by IIkay Gundogan on Carlos Tevez, free kick awarded. Free kick crossed by Gareth Barry, clearance by Kevin Grosskreutz.
0:00 The match has kicked off.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.