The No.3 seed will now meet Elina Svitolina in the final after the Ukrainian upset No.4 seed Iga Swiatek in three sets.
Gauff's win earned the 22-year-old American her second WTA 1000 final appearance this year following her runner-up finish to Aryna Sabalenka in Miami in March.
Gauff struggled early on as Cirstea raced into a 4-2 lead, but the world No.4 shifted gears and took command of the match by winning four games in a row to take the opening set.
Her momentum was briefly interrupted in the second set when play was paused to assist a spectator who required medical attention, yet Gauff kept her focus.
She twice secured breaks only for Cirstea to fight back each time. However, Gauff claimed a decisive break in the eighth game and held serve to seal the win in a match that lasted a little over one hour.
The straight-sets victory ended a taxing run for Gauff, who had navigated three consecutive three-set matches to reach the semi-finals, including a narrow escape against compatriot Iva Jovic.
Cirstea, who plans to retire later this year, exits having delivered the shock of the tournament by stunning world No.1 Aryna Sabalenka in Saturday's third round.
Gauff's victory was her third over the 36-year-old Cirstea this year following previous wins in Miami and Madrid.
"I think I learned a little bit more from each match," said Gauff, who lost to Jasmine Paolini in last year's final, during her on-court interview. "Those are the matches you get through ... I'm really grateful to be in the final."
Svitolina, meanwhile, beat world No.3 Iga Swiatek 6-4 2-6 6-2.
Swiatek was looking to build on making her first individual semi-final of the season as she works towards the French Open, but came up short against Svitolina, who had knocked out world No.2 Elena Rybakina in the last round.
Svitolina saved 16 break points in that match against Rybakina and made a quick start to take the first set against Swiatek.
The Pole fought back though in the second before Svitolina overpowered her in the deciding set.