Kylian Mbappe and Federico Valverde scored and goalkeeper Thibaut Courtois kept the visitors at bay in Real Madrid's 2-1 at the Santiago Bernabeu on Tuesday (Wednesday AEST).
Erling Haaland struck twice after halftime as Manchester City won 2-0 at Porto, extending coach Enzo Maresca's winning start following three successive Premier League victories.
Real Betis twice came from behind to beat Lille 3-2 in France, with defender Marc Bartra scoring twice before Troy Parrott grabbed the winner. Lille later had Ethan Mbappe sent off.
Serhou Guirassy's late double secured Borussia Dortmund a 3-2 home victory over Villarreal after the Spanish side had cancelled out Renato Veiga's own goal.
Earlier, Aston Villa held off Club Brugge to win 3-2 in Belgium, helped by two Pau Torres assists, while Razvan Marin's free kick earned AEK Athens a 1-0 home victory over LASK.
Real coach Jose Mourinho faced his former club at the stadium where he guided Inter to Champions League glory in 2010, but the visitors threatened to spoil his evening.
Courtois repeatedly came to Real's rescue against an Inter side who arguably had the better of the contest, controlling more than 64 per cent of possession but paying for two costly defensive errors.
Real went ahead when Mbappe pressured Yann Bisseck into losing possession and Brahim Diaz collected the loose ball before feeding the French striker, who sent it beneath the goalkeeper.
Courtois then saved Hakan Calhanoglu's powerful free kick, before Inter goalkeeper Martinez gifted Real their second, attempting to dribble past Valverde inside his goal area and allowing the midfielder to poke the ball home.
Jude Bellingham missed a close-range chance before halftime and Inter maintained their pressure after the break. Carlos Augusto converted Lautaro Martinez's low cross in the 76th minute, but Real held on.
"I think we played a great first half, but I don't deserve the MVP award today - Courtois deserved it because he saved us with an extraordinary performance," Valverde told Spanish broadcaster Movistar Plus.
City controlled possession against Porto and finished with 20 shots, including 10 on target, while the hosts failed to register a single attempt.
Maresca's side had more than 70 per cent possession and forced Porto's goalkeeper into six saves before halftime.
Haaland broke the deadlock two minutes after the restart, heading Enzo Fernandez's lofted cross into the top corner. He added his second a minute into stoppage time, finding the bottom corner from Rayan Ait-Nouri's pass.
"I think we could've scored more goals, especially in the first half, but overall I think we deserved to win," Maresca told Amazon Prime.
In Belgium, Torres set up John McGinn to put Aston Villa ahead against Brugge in the 11th minute, but Hugo Vetlesen equalised for the hosts eight minutes later.
Villa responded swiftly, with Emiliano Buendia restoring their lead from a Joao Gomes assist, before Nicolas Jackson made it 3-1 just before halftime, Torres again supplying the final pass.
Brugge dominated after the break and Nicolo Tresoldi pulled a goal back with a penalty in the 61st minute, but Villa protected their advantage to secure all three points.