Bayer Leverkusen progressed to the knockout stages of the UEFA Champions League with a hard-fought 1-0 win at Real Sociedad.
The Germans needed to produce a better result at Anoeta than Shakhtar Donetsk could manage away to Manchester United, and they did their bit with a battling away victory.
The Ukrainians' 1-0 defeat in England made sure the job was completed, as Leverkusen progressed as Group A runners-up.
Leverkusen created the first half's better chances as a Gonzalo Castro free-kick hit the post and Simon Rolfes headed over, but Antoine Griezmann was presented with several opportunities of his own to give the Spaniards something to show for their efforts.
After a string of missed chances before the break for both sides, Omer Toprak finally prodded the visitors into the lead four minutes after the restart, while Stefan Kiessling headed against the crossbar.
The hosts attempted to push men forward towards the end as they sought their first home Champions League goal since December 2003, but Leverkusen held firm.
Sociedad coach Jagoba Arrasate made six changes from the team that lost 4-0 to Shakhtar Donetsk in their last European match, with injured duo Claudio Bravo and Inigo Martinez the most notable absentees.
Leverkusen went into the match on the back of a 1-0 win at Borussia Dortmund in the Bundesliga, with coach Sami Hyypia keeping faith with that side.
The hosts were the first to threaten as the in-form Griezmann fired an audacious half-volley just wide from 30 yards in the eighth minute.
Little more than 60 seconds later Leverkusen went close themselves, as Castro’s free-kick came back off Enaut Zubikarai's right-hand post.
Another Castro set-piece wreaked havoc in the 23rd minute. The German's left-wing delivery evaded the Real defence, but Rolfes headed over three yards from goal.
The hosts gradually began to assert control as the half drew to a close, but Griezmann missed the target with a hat-trick of chances before Carlos Vela agonisingly failed to connect with the Frenchman's low cross.
Hyypia showed his intent by replacing midfielder Jens Hegeler with the attack-minded Robbie Kruse at half-time and it did not take the Germans long to take the lead.
Kiessling saw his 49th-minute header tipped over by Zubikarai and from the resulting corner Toprak poked the ball home after the Spaniards had failed to clear their lines.
Leverkusen's second-half gameplan revolved around getting crosses into Kiessling, but he spurned two more chances from Kruse deliveries, hitting the post before being denied by Zubikarai.
Kruse was the source of danger again in the 72nd minute as the Australian's cross was controlled by Son Heung-Min, but the forward smashed his half-volley well over from near the penalty spot.
Leverkusen invited pressure in the final stages, but they retained their lead despite the hosts' late pressure to seal the their progress.
|Napoli v Wolfsburg: Benaglio eyes return to form|
|Frontzeck: Survival fight is not about me|
|Real can cope with injuries - Ancelotti|
|Dnipro v Club Brugge: Preud´homme prepares to show his hand|
|Silva returns to training after cheekbone scare|
|Villa and Reading charged over alleged FA Cup crowd trouble|
|Zeman resigns from Cagliari post|
|Opportunity knocks as Dyche plans for Barnes absence|
|Berbatov dreaming of Champions League semi-final|
|Benzema joins Real´s injury list|
|Jenkinson: West Ham will not settle for mid-table|
|Montella calm over fan frustrations|
|Blanc: Barca are the model for PSG|
|Newcastle just need three more points - Janmaat|
|Gaya: Six finals left for Valencia|
|Muller wary of Porto counter-attacks|
|Bartomeu plays down Pogba link|
|Verratti hails ´essential´ Ibrahimovic|
|Zidane backs PSG to upset Barca|
|America v Montreal Impact: Klopas unfazed by host´s form|
|Vlaar open to Villa stay|
|Shepherd urges fans not to boycott Newcastle|
|Maritimo 1 Nacional 1: Tiquinho ensures derby finishes all square|
|Fiorentina 0 Verona 1: Diamanti and Neto pay the penalty|
|Elche 1 Real Sociedad 0: Bergara gifts win to hosts|
|Van Persie returns in Under-21 game|
|Turkish Super Lig Review: Galatasaray slip sees Fenerbahce go top|
|Russian Premier League Review: Arsenal Tula and Rostov maintain survival bids|
|Frontzeck named as Korkut´s replacement at Hannover|
|Lopetegui wary of Bayern backlash|
|Pastore plays down Cantona´s world best tag|
|PSG absences no excuse for failure - Blanc|
|Suarez sad to see Gerrard leaving Liverpool|
|Cleber injury adds to Hamburg woes|
|Northern Ireland free to play Romania at Windsor Park|
|Juve sweating on Vidal availability|
|Monaco v Juventus: Evra ready to take control|
|Striking concerns for Chelsea after Drogba injury|
|PSG and Chelsea have bid for Dybala, claims agent|
|Pogba can leave Juve for ´right offer´|
|Bendtner dropped after arriving late for training|
|Messi achievement unrepeatable, says Luis Enrique|
|Football League Preview: Preston and MK Dons battling to join Bristol City|
|Real Madrid v Atletico Madrid: Ancelotti optimistic amid injury concerns|
|Iniesta declared fit for PSG second leg|
|Bale remains a doubt for Atletico clash|
|Schweinsteiger set to face Porto, Ribery to miss out|
|No broken cheekbone for Silva|
|Final appearance can remove negativity at Villa - Fox|
|Bale selected in Football League Team of the Decade|
|PSV director: United and PSG want Depay|
|Korkut sacked by relegation-threatened Hannover|
|Sherwood: Pressure all on Arsenal|
|Newcastle in a ´dangerous moment´ - Colback|
|Kovac hopes to have Modric fit for Euro qualifier|
|Copa Libertadores Preview: Cruzeiro boss Oliveira does not fear sack|
|MLS Review: Revs extend unbeaten run, Timbers stun City|
|Fournier proud and disappointed|
|Shaw ready to make an impact|
|Hazard among best three in the world - Mourinho|
|Carver: Newcastle are in relegation battle|
|CAF Champions League Review: Setif get two away goals, Al Ahly denied late on|
|Inzaghi praises Milan derby officials|
|La Liga Review: Granada frustrate Sevilla, Villarreal´s woes continue|
|Inter should have had a penalty, Mancini fumes|
|Ligue 1 Review: Lyon return top after derby draw|
|Inter 0 Milan 0: Disappointing derby ends in stalemate|
|Primeira Liga Review: Sporting made to battle, Penafiel running out of time|
|Balotelli targets officials in latest social media outburst|
|Bundesliga Review: Werder Bremen edge Nordderby, De Bruyne rescues Wolfsburg|
|Serie A Review: Napoli close on stumbling Roma|
|Pochettino congratulates 30-goal Kane|
|Rodgers questions Liverpool´s mental strength|
|Carver counting on experience after latest defeat|
|Sherwood marvels at Grealish potential|
|Eredivisie Review: Dordrecht relegated as Go Ahead Eagles stun Feyenoord|
|Newcastle United 1 Tottenham 3: Losing streak continues amid fan boycott|
|Kouyate elbow on Silva accidental - Allardyce|
|Aston Villa 2 Liverpool 1: Delph ends Gerrard´s hopes of dream farewell|
|Pellegrini hails City response to derby defeat|
|Silva back home after Kouyate elbow|
|Manchester City 2 West Ham 0: Silva injury sours routine win|
|Bayern Munich v Porto: Neuer rallies Germans for uphill battle|
|Barcelona v Paris Saint-Germain: Marquinhos keeps the faith ahead of Camp Nou test|
|Fer closes in on QPR return|
|Crouch set for surgery|
|Dortmund confirm Tuchel as Klopp replacement|
|Adams leaves relegation-threatened Tranmere|
|Real still unsure over Modric injury|
|Tevez rubbishes Juve exit talk|
|Moyes: I had to fight to keep Rooney at United|
|Perth Glory 3 Melbourne City 1: Maclaren treble the difference|
|Dyche: Burnley are too honest|
|Illarramendi eager for Real stay|
|Hazard issues Chelsea warning|
|MLS Review: Injury-time winner buoys Galaxy, Martins shows class for Sounders|
|Pastore talents ´unpredictable´ - Blanc|
|Liverpool much bigger than City - Rodgers|
|AFC Champions League Preview: Evergrande look to progress|
|Clarke expects distraught Federici to bounce back|
|Toure is City´s scapegoat - agent|
|Allegri praises high-flying Juve|
|Athletic Bilbao 4 Getafe 0: Hosts end winless run|