Real Madrid were made to toil by the 10 men of Athletic Bilbao but eventually won 3-1 on Tuesday thanks to two strikes from Karim Benzema.
Athletic forward Raul Garcia was sent off in the 13th minute for a second booking, but Real only managed to take the lead right at the end of the first half thanks to a low drive from Toni Kroos.
The Basque side continued to cope well with their numerical disadvantage into the second half and grabbed an equaliser through Ander Capa in the 52nd minute.
But Benzema headed the champions back in front in the 74th minute.
Athletic substitute Mikel Vesga had a glorious chance to equalise in added time but was thwarted by an outstanding save from Thibaut Courtois and Benzema killed the game off by finishing on the counter-attack in the second minute of injury-time.
Bundesliga: Winning Dortmund start for Terzic
Edin Terzic enjoyed a winning debut as his new Borussia Dortmund side narrowly won 2-1 at Werder Bremen to earn their first win in four league games.
Terzic, a former Dortmund assistant coach, succeeded Lucien Favre on an interim basis after last weekend’s 5-1 demolition by Stuttgart.
Raphael Guerreiro’s 12th-minute volley gave the visitors a perfect start but the euphoria quickly fizzled out and Werder’s Kevin Moehwald levelled with a powerful shot in the 28th.
Werder goalkeeper Jiri Pavlenka was kept busy throughout and also denied 16-year-old Youssoufa Moukoko, making his first start in the absence of injured striker Erling Haaland.
But Pavlenka clumsily crashed into Manuel Akanji in the 78th minute to concede a penalty and though he saved Marco Reus’s initial spot-kick, he was beaten by the Dortmund captain on the rebound.
A first win since mid-November moves Dortmund up to fourth.
Lars Stindl scored a hat-trick – including two last-gasp goals – as Borussia Monchengladbach came from 3-1 down to rescue a 3-3 draw at Eintracht Frankfurt.
Andre Silva had scored twice for Frankfurt in the first half to cancel out Stindl’s 14th-minute opener, before Aymen Barkok’s fine solo goal made it 3-1.
After the 82nd-minute dismissal of Frankfurt’s David Abraham, Stindl scored what seemed a 90th-minute consolation from the spot but the Gladbach man then headed a stoppage-time equaliser to complete the dramatic finale.
Elsewhere, Stuttgart substitute Sasa Kalajdzic scored two late goals in a 2-2 draw with Union Berlin, while Hertha Berlin drew with visiting Mainz 0-0.
Serie A: Lazio stumble again in brothers’ battle
Simeone Inzaghi’s Lazio dropped more points as his brother Filippo’s Benevento frustrated their visitors in a 1-1 draw in Serie A.
Lazio raced into a first-half lead through a familiar source in Ciro Immobile and the Lazio forward will not score many better goals than his 25th-minute volley.
However, Pasquale Schiattarella’s strike on the stroke of halftime, another well-taken volley, levelled the scores.
The hosts, who had Schiattarella sent off in stoppage time, had the better of the chances to win it but had to settle for a draw.
After just one win in their last six games in all competitions, Lazio are languishing eighth in Serie A,
In the night’s other game, Udinese and Crotone played out a goalless draw.