Inter beat Roma to reach Italian Cup semis
The Sweden striker hooked in on 63 minutes after a close-range header from Walter Samuel, who appeared offside, was blocked by goalkeeper Artur.
Rodrigo Taddei had brought Roma level moments earlier with a fierce right-foot shot after Inter had gone ahead when Adriano took advantage of a defensive lapse to slot home on 10 minutes.
The two sides have contested the last four Italian Cup finals, Roma lifting the trophy in the last two seasons and Inter taking the honours in the two previous years.
Roma had the ball in the net just before Adriano's goal but the referee ruled that Mirko Vucinic had handled. The visitors protested that the Montenegro striker had been pushed.
Dejan Stankovic hit the bar with a volley in the first half for Serie A leaders Inter, who lost 3-1 at Atalanta on Sunday.
"I have respect for this competition," Inter coach Jose Mourinho told Rai television. "It's been a good response (to the Atalanta defeat). I'm happy with the attitude and performance."
Champions Inter will meet Sampdoria in the semi-finals after the Serie A strugglers beat Udinese 4-1 on penalties following a 1-1 draw.
Giampaolo Pazzini, signed from Fiorentina last week, netted his first Sampdoria goal on 55 minutes with an angled shot.
Italy forward Antonio Di Natale equalised for the hosts eight minutes later from the spot after a foul by Reto Ziegler but struck the post with another penalty on 89 minutes.
Team mates Gaetano D'Agostino and Simone Pepe missed in the shootout to extend a miserable run for Udinese, who have not won in 10 league matches.
Lazio host Torino on Thursday and Juventus entertain Napoli in the final last-eight clash on February 4.