With progression from Group A already assured, Mancini named a much-changed side in Rome, but the Azzurri's squad depth was on show on Sunday.
Indeed, it was one of Italy's new faces who got the winner – Matteo Pessina becoming the youngest Italian player to score on his first start at a major tournament since Antonio Cassano at Euro 2004. Pessina's moment came with a neat flick in the 39th minute.
Wales' comeback hopes appeared to have been dashed when Ethan Ampadu saw red, although Gareth Bale then missed a golden chance. Yet Italy sealed an 11th straight win and made it 30 games unbeaten in the process to match a long-standing national record.
One of eight Italy changes, Andrea Belotti went close to connecting with an acrobatic attempt early on, before the Torino striker flashed a low strike across goal in the 24th minute.
In search of his first Wales goal on his 102nd cap, Chris Gunter headed over from Daniel James' corner, but Italy made the breakthrough six minutes before half-time.
Joe Allen fouled Marco Verratti out on the right, with the Paris Saint-Germain playmaker floating in a cross which was met by Pessina, whose deft flick found the bottom-left corner.
Wales had a let-off after the break – Federico Bernardeschi hitting the base of the left-hand post with a long-range free-kick.
A mistake from Francesco Acerbi gave Aaron Ramsey a chance, but he failed to get a shot off, and Wales were soon down to 10 when Ampadu caught Bernardeschi late and received a rather harsh straight red.
Danny Ward made a brilliant save to deny Belotti, and Bale should have made Italy pay for their profligacy, but he lashed over on the volley with only Gianluigi Donnarumma to beat.
Ward's save counted in the end, however, with Wales securing second place in the group thanks to a better goal difference than Switzerland, who beat Turkey in Baku.