World number one Simona Halep will face Elina Svitolina in a repeat of last year’s Italian Open final after recovering from a set down to beat Russian Maria Sharapova 4-6 6-1 6-4 in Rome on Saturday.

Defending champion Svitolina put in a clinical performance earlier in the day to beat unseeded Estonian Anett Kontaveit 6-4 6-3 in the other semi-final.