ROME: Hakan Calhanoglu thrashed home a powerful first-half strike and Lautaro Martínez scored a penalty with the last kick of the game for champions Internazionale to beat Venezia 2-0 and close the gap on the top two teams in Serie A.

Third-placed Inter are now one point behind joint leaders Napoli and Milan, who both have home matches on Sunday where they can restore their four-point advantage.

Inter dominated early against their hosts, who are back in the top flight of Italian football after an absence of almost two decades, but in the end were hanging on for victory. Defeat left Venezia still in 15th place and ended a run of successive wins.

Juventus suffered another setback as they lost 1-0 at home to Atalanta , with a fifth defeat in 14 Serie A games leaving them in eighth place.

The hosts struggled to create any openings of note in the first half and they left Duván Zapata free to fire home in the 28th minute. Juve failed to offer much of a response, with Paulo Dybala’s late free-kick that clipped the crossbar as close as they came to a leveller.

Atalanta held on in relative comfort and stretched their unbeaten run to eight games in all competitions to stay fourth on 28 points, four points behind the leaders, Napoli, and seven points ahead of Juve, who are 11 points off the pace.

The victory was Atalanta’s first at Juventus since 1989.

“Atalanta did little in front of goal. The only shot was made by Zapata on our mistake,” the Juventus coach, Massimiliano Allegri, said. “When you don’t score things get very nervous. The only thing that we have to do is work, as we have always done, and try to win a game.”

Earlier, Empoli scored two late goals to earn a dramatic home derby win over Fiorentina . The visitors went ahead through Dusan Vlahovic before Filippo Bandinelli and Andrea Pinamonti struck in the 87th and 89th minutes.

Sampdoria boosted their survival hopes with a 3-1 comeback win at home to Verona .

In Spain . . .

Barcelona scored twice in the closing stages for a 3-1 triumph at Villarreal to win away for the first time this season and hand their new coach, Xavi, a second successive La Liga triumph.

Memphis Depay calmly went around goalkeeper Gerónimo Rulli to score a dramatic 88th-minute goal that restored their lead and Philippe Coutinho added a stoppage-time penalty to leave Barcelona seven points behind leaders Real Madrid, who play Sevilla on Sunday.

Villarreal had fought back through Samuel Chukwueze to equalise on 76 minutes after Frenkie de Jong’s early second-half effort had given Barcelona the lead. Barcelona’s victory followed a fortuitous 1-0 win over Espanyol last week in Xavi’s coaching debut and a goalless draw with Benfica in the Champions League in midweek.

In Germany . . .

Erling Haaland scored on his comeback with a second-half volley as Borussia Dortmund came from a goal down to beat Wolfsburg 3-1 and stay a point behind the Bundesliga leaders, Bayern Munich .

The Norwegian striker scored in the 81st minute after coming on as a second-half substitute following his recovery from a hip flexor muscle injury that had sidelined him since mid-October.

With their sixth win in the last seven league matches, Dortmund moved up to 30 points, one behind Bayern, who edged past Arminia Bielefeld 1-0 thanks to Leroy Sané’s powerful drive in the 71st minute.

The Bundesliga’s top two teams face each other next Saturday, with Dortmund at home. “A lot has happened in the past few days. But we played a good game and the result stands above everything else,” Dortmund’s Julian Brandt said after his side crashed out of the Champions League to Sporting Lisbon on Wednesday. “We are extremely happy. Now we have a good full week to prepare for Bayern and we will go into that game with a lot of confidence.”

The Wolves took a second-minute lead through Wout Weghorst who headed in at the near post to complete a textbook break that had left the Dortmund backline exposed.

The Ruhr valley club levelled with an Emre Can penalty in the 35th after Marco Reus was brought down in the box by Wolfsburg’s Maxence Lacroix. Donyell Malen put them in front by rifling in from a Reus pass to score for the third consecutive game in all competitions.

There was more good news for the visitors, with Haaland making a second-half substitute appearance and looking as sharp as ever ahead of the big game against the Bavarians next week. He needed only eight minutes on the pitch to bag his 10th league goal in seven appearances, volleying in from close range to become the youngest player to reach 50 Bundesliga goals at 21 years and 128 days.

Bayern have had a turbulent few days after last week’s Bundesliga loss to Augsburg and a string of Covid-19 cases, and they were frustrated in a dominant first half by Arminia’s goalkeeper, Stefan Ortega.

After the break the Bavarians picked up where they left off and had two early golden chances through Sané and Thomas Müller. Sané had another good opportunity in the 57th with a volley that sailed just wide but he did not miss in the 71st, rifling in from outside the box from a Müller pass.

The substitute Serge Gnabry rattled the bar minutes later but it was Sané’s goal that meant Bayern set a league record with 102 Bundesliga goals in a calendar year, beating Cologne’s mark from 1977 Sebastian Andersson scored in injury time as Köln beat Borussia Monchengladbach 4-1 in the Rhine derby.

The Augsburg substitute Michael Gregoritsch equalised in the seventh minute of injury time to salvage a 1-1 draw at Hertha Berlin . Hoffenheim routed last-place Greuther Fürth 6-3 away and Bochum came from behind to beat visiting Freiburg 2-1.