They trailed by two at half-time, but quickfire goals from veteran full-back Lucy Bronze and impact substitute Michelle Agyemang forced extra time.
Then followed a remarkable penalty shootout which ended 3-2 in favour of the Lionesses after 14 shots, nine of which were missed or saved.
Bronze was key again as she stepped up in sudden death and pounded her spot-kick into the roof of the net, before Swden’s Smilla Holmberg fired over to confirm England’s win.
There remain some lingering injury doubts from the tie, though, as captain Leah Williamson was withdrawn in the second half with an apparent ankle injury.
Italy are in the midst of a strong Euros run, reaching this stage after beating Norway in the previous round by way of a second-half brace and late winner from Cristiana Girelli.
The 35-year-old is tied in second in the tournament Golden Boot race, having found the back of the net three times in four matches.
The opposite semi-final between Germany and Spain will be held on Wednesday ahead of Sunday’s final.
How to watch England vs Italy
TV Channel: England vs Italy will be broadcast live on ITV1. Coverage will begin from 7pm BST ahead of an 8pm kick-off.
Live stream: Fans can follow the action live online via ITVX.
Live blog: Follow the action right here with Standard Sport’s LIVE blog, complete with expert insight and analysis.