The 24-year-old Schwartzman will next face Dutchman Robin Haase, who upset seventh-seeded Grigor Dimitrov of Bulgaria 7-6 (3), 4-6, 6-1 in 2 hours and 9 minutes. He'll face the victor of the second semifinal - between Alexander Zverev and Canadian teenager Denis Shapovalov - the shock conqueror of Rafael Nadal earlier this week.
In the other quarter-finals, Shapovalov came from a set down to beat Adrian Mannarino of France 2-6 6-3 6-4, and Germany's Alexander Zverev dismissed South Africa's Kevin Anderson in straight sets, 7-5 6-4.
Bautista Agut struggled on his serve as he was broken three times and won just 65 percent of his first serve points.
For Federer, it was his 59nd ATP 1000 semi-final and a 16th consecutive win - his longest since 2012, when he was the world's top ranked player. "But it's all connected to great play", said the Australian Open and Wimbledon champion.
That set the stage for Federer to wrap up the contest in relatively short order and he will be firm favourite to down Haase in the last four of a tournament he last won in 2006.
"Now that Rafa is out I know I can make big strides, especially if I was to go further than the semis here".
Bautista Agut battled Federer closely in the first set before the Swiss picked up at the pace to win it. Federer held the edge in the second set but Bautista Agut was able to hold his head high despite the outcome.
The Swiss maestro took that momentum into the opening game of the second set and, despite a poor volley gifting Bautista Agut a point, he broke to apparently seize control. "I believe it's because I was more aggressive coming to the net".
Haase reached his first career Masters Series semifinal.
Federer grabbed a second service break late in the third set to effectively seal the victory and improve to 17-0 lifetime against the 35-year-old Spaniard. "I didn't play too well from the baseline, but Haase served better to get back into the match". "It's tough to come back and play that same level". I wouldn't be shocked if Zverev found a way to win this match.