Johanna Konta celebrated her birthday with a three-set win over teenager Marketa Vondrousova to reach the Italian Open semi-finals.
Konta, now 28, who lost her first final in almost a year in Morocco two weeks ago, maintained her fine form on clay with a 6-3 3-6 6-1 victory.
The Briton broke her Czech opponent in the third game of the opening set and, after a series of strong service games, sealed it by winning on Vondrousova's serve for a second time.
Vondrousova, who knocked out third seed Simona Halep in the previous round, fought back in the second set and broke Konta for the first time in the fifth game to take a 3-2 lead.
The 19-year-old levelled the match at one set all by breaking Konta for a second time in the ninth game.
But Konta rallied in the decider, saving break point at 1-0 down with a stunning backhand before breaking Vondrousova's serve in the next game.
Konta pounced on Vondrousova's mistakes and reeled off the last six games to set up a last-four clash with Holland's seventh seed Kiki Bertens, who won the Madrid title last week.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', '876a9ab1-972e-4d96-876c-a493a6ca99b1');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:uk,paservice:sport:world');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:tennis');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Konta celebrates birthday with Italian Open victory over Vondrousova'});