Juan Martin del Potro has reached his third semi-final at Indian Wells with a victory over Philipp Kohlschreiber.

The number six seed toppled his German opponent 3-6 6-3 6-4 after two hours and seven minutes on court at the BNP Paribas Open.

Kohlschreiber got off to a dominant start, winning two break points in the first set, and looked to be on course to repeat his previous victory against the Argentinian at the Stuttgart Open in 2016.

But a determined del Potro improved on his serve in the second set, winning 82% of points on his first serve, and broke his opponent to serve for the set at 5-3 and force a decider.

Del Potro’s form continued into the third as he claimed the first break and saw out the set 6-4, crushing Kohlschreiber’s hopes of reaching his first Masters 1000 semi-final in 83 appearances.

Speaking on court after the match, del Potro said of his opponent: “He’s a very smart guy, his game is so good, he made me run a lot, so my legs are completely tired.

“But at the end of the match, I played well, and in the important moments. I am so happy to be in the semi-final.”

Del Potro will next face Milos Raonic at Indian Wells after the Canadian defeated Sam Querrey 7-5 2-6 6-3.

The American was looking to advance to his first ATP World Tour Masters 1000 semi-final – but the 32nd seed reeled off four straight games to take the first set 7-5.

Querrey fought back in the second to take the match to a deciding set, but Raonic held his nerve to save two break points at 5-3, eventually seeing out the match with a total of 17 aces in one hour and 50 minutes.

Yesterday, Roger Federer stormed his way into his 11th semi-final at the tournament, with a 7-5 6-1 win over Hyeon Chung.

The Swiss will go head-to-head in the final four with Borna Coric, who beat South Africa’s Kevin Anderson 2-6 6-4 7-6 (7/3).