Rade Krunic and Diogo Dalot scored in either half as AC Milan beat Hellas Verona 2-0 to close the gap on Serie A leaders Inter before next week's Europa League trip to Manchester United.
Krunic curled in a free-kick after 27 minutes with Manchester United loanee Dalot doubling the visitors' account five minutes after the break to pull Milan three points behind Inter, who host in-form Atalanta on Monday.
Champions Juventus are four points behind Milan in third, with a game in hand, after claiming their seventh straight win at home, 3-1 against Lazio on Saturday.
Despite the absence of key players including star striker Zlatan Ibrahimovic and defender Theo Hernandez, Milan kept the pressure on their city rivals two weeks after their 3-0 derby defeat.
Rafael Leao started up front in Ibrahimovic's absence, and the Portuguese forward threatened after quarter of an hour with a header which went over the bar.
The breakthrough came when Krunic was brought down just outside the box. The Bosnian midfielder dusted himself down and whipped a 27th-minute free-kick past a stunned Marco Silvestri from a tricky angle for his first league goal in Milan colours.
Defender Dalot also got off the mark in Serie A five minutes after the break, blasting in an Alexis Saelemaekers cross.
Milan took a valuable three points before they travel to Manchester for the first leg of their Europa League last 16 tie with United before hosting Napoli in the league next weekend.
Verona, in eighth, fell to their first home defeat since losing to Inter before Christmas.
Earlier Roma moved up to fourth, one point ahead of Atalanta thanks to a Gianluca Mancini goal, ahead of their Europa League tie against Shakhtar Donetsk in Rome.
Mancini jumped highest to turn in a Lorenzo Pellegrini corner after 24 minutes at the Stadio Olimpico, beating second choice 'keeper Federico Marchetti who replaced Mattia Perrin.
Roma sit nine points behind Inter after the win.
"One more step is missing to beat the big teams, we need to improve because something more is needed to reach the Champions League," said Mancini.
Bottom side Crotone ended their seven-match losing streak with a 4-2 win over coronavirus-hit Torino.
The Turin club's last two games, against Sassuolo and Lazio, were unplayed because of a Covid-19 outbreak.
Earlier, Alvaro Morata scored twice and set up another as Juventus warmed up for next week's Champions League game against Porto with a 3-1 comeback win over Lazio on Saturday.
Cristiano Ronaldo started on the bench before next week's key last 16, second leg game against the Portuguese in Turin with Juventus trailing 2-1.
Champions Juventus fell behind to an early Joaquin Correa goal following a Dejan Kulusevski passing error midfield.
But Morata set up Adrien Rabiot to pull the hosts level before the break with the Spaniard scoring twice in a three-minute spell before the hour mark.
Andrea Pirlo's side are third, seven points behind leaders Inter who host Atalanta on Monday, and one point adrift of AC Milan who play Hellas Verona on Sunday.
"Today we started the game 20 minutes late but it was normal because many were out of position and many returned (from injury)," said Pirlo.
"But there was a great reaction, we didn't get down and despite the many absences we played an excellent match.
"For us it was a final, an important match for the standings and we're happy." Paulo Dybala remains out injured along with defender Giorgio Chiellini and midfielder Matthijs de Ligt, while Rodrigo Bentancur positive for coronavirus.
But Juan Cuadrado started after missing three league games with Arthur and Leonardo Bonucci also returning off the bench in the second half.
Morata started up front alongside Kulusevski, with Ciro Immobile leading the Lazio attack alongside Correa.
And the Argentine pounced after quarter of an hour after Kulusevski gave the ball away, shaking off Merih Demiral to beat Wojciech Szczesny in the Juventus goal.
Szczesny denied Luis Alberto a second eight minutes later.
Rabiot pulled a goal back six minutes before the break, picking up a Morata through ball to fire in a powerful left footed angled drive over Pepe Reina.
Both sides had chances after the break with Reina denying Federico Chiesa, Szczesny clearing from Correa and a Sergej Milinkovic-Savic header rattling the bar.
Chiesa set up Morata for the second after 57 minutes with the Spaniard completing a brace from the penalty spot three minutes later after Milinkovic-Savic brought down Aaron Ramsey in the box.
Morata made way for Ronaldo for the last 20 minutes with Arthur and Weston McKennie also coming off the bench in place of Ramsey and Cuadrado with Bonucci coming on for the final eight minutes.
Lazio's top striker Immobile threatened but was unable to add to his 14 goals this campaign, drawing a blank for a fourth straight game as the Romans fell to their third defeat in four matches.
"It's a defeat that hurts," said Lazio coach Simone Inzaghi whose side's hopes of Champions League football next season took a knock as they sit seventh, six points adrift of Atalanta in fourth place.
"We compromised the game alone, giving away an avoidable penalty. We made some mistakes and at Juventus, with some mistakes you don't win." Sassuolo's Europa League hopes further dwindled with a 2-0 loss at midtable rivals Udinese stretching their winless run to three games.
Spanish forward Fernando Llorente scored his first goal for Udinese just before the break with Argentine Roberto Pereyra firing in a second deep into injury time.
Sassuolo, in ninth, have won just two of 11 league games played since after Christmas. Udinese are four points behind in 10th place.
Spezia snatched a 1-1 draw at home against Benevento, in a match between promoted sides vying to stay in the top flight next season.
Agencies