Men's top seed Novak Djokovic beat German qualifier Dominik Koepfer in three sets to reach the last four in Rome ©Getty Images

Novak Djokovic, the top seed in the men's draw at the Italian Open, reached the semi-finals in three sets as second seed and defending champion Rafael Nadal suffered a surprise defeat to Diego Schwartzman.

On a dramatic day of men's quarter-final action at the Foro Italico, Djokovic was made to work hard for his last-four berth in Rome as he was taken to three sets by German qualifier Dominik Koepfer.

Djokovic took the first set of the match on the Centrale court, racing into a 4-0 lead before being pegged back and then breaking again to close out the set 6-3.

Koepfer surprisingly took the second, breaking twice after initially going a break down, and taking it 6-4.

In the decider, the world number one broke in the third game and went on to clinch the set 6-3, and with it victory in two hours and 12 minutes.

In the final match of the day in Rome, eighth seed Schwartzman sprung a surprise as he beat Nadal in straight sets.

The Spaniard, a nine-time champion at this event, including in the last two years, was beaten 6-2, 7-5 by Schwartzman of Argentina.

Djokovic will face Casper Ruud, the Norwegian, in the last four, after the unseeded player knocked out fourth seed Matteo Berrettini of Italy in three sets.

After Berrettini took the first set 6-4, Ruud, who had already accounted for 11th seed Karen Khachanov of Russia in the first round, took another high-profile scalp winning the second set 6-3 and the third on a tiebreak to complete a 4-6, 6-3, 7-6 win.

Elsewhere in the men's quarter-finals, Canada's Denis Shapovalov, the 12th seed, beat Bulgaria's Grigor Dimitrov, the 15th seed, in three sets - 6-2, 3-6, 6-2.

Yulia Putintseva of Kazakhstan withdrew from her quarter-final match with women's top seed Simona Halep early in the second set ©Getty Images
Yulia Putintseva of Kazakhstan withdrew from her quarter-final match with women's top seed Simona Halep early in the second set ©Getty Images

On the women's side of the event, top seed Simona Halep's match was ended prematurely when her opponent Yulia Putintseva of Kazakhstan retired injured early in the second set.

The Romanian took the first set 6-2 and led 2-0 early in the second when Putintseva retired with a lower back injury.

Halep will now face ninth seed Garbiñe Muguruza of Spain who ended the run of Victoria Azarenka with a win in three sets.

Belarus' Azarenka, who won her second-round match earlier in the tournament 6-0, 6-0 and the third seed, took the first set of a high-quality encounter on the Pietrangeli court 6-3, before the Spaniard fought back from a break down to take the second set, which featured seven breaks of serve in nine games, 6-3.

The deciding set featured five breaks of serve but it was Muguruza who clinched it, to record a 3-6, 6-3, 6-4 win in two hours and 12 minutes.

Elsewhere, second seed Karolína Plíšková of the Czech Republic battled through a see-saw match with Belgium's Elise Mertens, the 11th seed, 6-3, 3-6, 6-0.

Plíšková will now face her compatriot Markéta Vondroušová in the last four, after the 12th seed caused an upset by comprehensively beating Elina Svitolina, the fourth seed from Ukraine, 6-3, 6-0.

The men's and women's semi-finals of the joint Association of Tennis Professionals Tour Masters 1000 competition and Women's Tennis Association Premier 5 tournament are due to take place tomorrow.