UEFA Europa League: Inter 2 Dnipro 1
Inter were made to work in order to give coach Roberto Mancini a perfect 50th birthday present after the visitors claimed an early lead through Ruslan Rotan's volley.
Dnipro should have doubled their lead before the interval, only for Samir Handanovic to save yet another penalty, from Yevhen Konoplyanka.
Zdravko Kuzmanovic equalised for Inter after 30 minutes, but the Serie A side were handed another setback within a minute of the second half starting as captain Andrea Ranocchia received a second booking.
Nevertheless, Osvaldo found the net in the 50th minute and further Handanovic heroics, together with a goalline clearance and a disallowed Dnipro goal, ensured Inter hung on and stretched their unbeaten home run in European competition to 10 matches.
They are now guaranteed to play in the round of 32, while Dnipro, Qarabag and Saint-Etienne could all claim the second qualifying spot in the final round of pool matches.
For the first European game of his second spell in charge, Mancini made three changes from the derby draw with Milan, including recalls for Osvaldo and Hernanes.
The Ukranian side settled quicker than their hosts and shocked San Siro after 15 minutes as Juan Jesus was caught in possession and the ball eventually found Konoplyanka. His venomous strike was parried away by Handanovic, but Rotan followed up to volley in from close range.
It was exactly what the visitors deserved and Inter skipper Ranocchia was lucky to escape a second yellow card when he cynically blocked Nikola Kalinic in the 24th minute.
Dnipro's lead should have been doubled when Yevhen Cheberyachko was bundled over in the area by Fredy Guarin and the referee pointed to the spot.
However, penalty-saving specialist Handanovic guessed right to repel Konoplyanka's poor effort for his fourth penalty save this season.
Inter made the most of their reprieve on the half hour when a Hernanes free-kick was not properly cleared and fell to Kuzmanovic, who stabbed home inside the area.
Mancini's men were revitalised and four minutes later, a flowing move ended with the onrushing Yuto Nagatomo lashing wide under pressure from Denys Boyko. The challenge forced the Inter player off with a shoulder injury.
Dnipro soon reminded Inter of their own threat, Douglas putting a free header over when well placed.
Inter's plans were then thrown into chaos within a minute of the restart as Ranocchia was beaten to the ball by Rotan and brought down the Dnipro goalscorer in the process, earning a second yellow card.
Despite their numerical disadvantage, Inter went ahead when Osvaldo beat the offside trap to latch onto a Hernanes pass and slotted home with ease from eight yards for his sixth goal of the season.
Dnipro were not done, though, and somehow failed to equalise two minutes later when Kalinic was superbly denied by Handanovic and the Croatian's rebound was hacked off the line by Juan.
The away side thought they had an equaliser two minutes from time when Konoplyanka's delightful free-kick was headed in by Yevhen Seleznyov but the offside flag was up, much to Inter's relief.