Haas broke Zeballos' serve twice in a row in the decisive set to close the match and take a step closer to his second final of the year. The 12th-ranked German lost to Marin Cilic in the final in Croatia earlier this month.
"Lorenzi has been around for a long time so this is a goal I'm sure he has been waiting to achieve for a lifetime," Haas said. "He has nothing to lose and is going to try to go one more and get to his first ATP tour final. He is a dangerous player. I'm going to have to try to play some of my best tennis."
The 114th-ranked Lorenzi broke Monaco's serve to go up 4-3 in the final set and held on to close the match in 2 hours, 34 minutes at the Ibirapuera Arena.
The 32-year-old Italian squandered a match point before losing the second set, but was in control in the third to pick up the win in the ATP 250 tournament in South America's biggest city.
Lorenzi served 12 aces en route to his first pro semifinal after five career quarterfinal losses.
"I'm very happy to finally break through to the semifinals," Lorenzi said. "I've had a lot of opportunities before but was never able to come up with the victory at this stage. For sure this is one of my greatest weeks on the tour."
Monaco had a set point in the first set but couldn't capitalize on it.
"It was a very close match, he had his chances in the first set and I had mine in the second, it was very difficult," Lorenzi said.
In another quarterfinal Friday, Federico Delbonis of Argentina easily beat Albert Montanes of Spain 6-4, 6-3 in just over an hour. He will play either home-crowd favorite Thomaz Bellucci of Brazil or Martin Klizan of Slovakia.
Nadal, the defending champion, is not playing at the clay-court tournament this year. He chose to play at the first edition of the Rio Open, which he won last week.