The combative Belgian, who had lost her previous three encounters with the former world number one, including their memorable 2001 French Open final, will meet compatriot Justine Henin-Hardenne or France's Amelie Mauresmo in Sunday's final.
By reaching the final, Clijsters made sure of regaining the world number two spot she lost this week to Venus Williams, who pulled out of the Berlin tournament with a stomach injury.
Clijsters served for the match twice in the second set but Capriati refused to bow out, surviving four match points before winning the set in a tiebreak.
The decisive set was close until the fourth-seeded Capriati double faulted to present Clijsters with three more match points and hit a backhand into the net on the first after two hours and 17 minutes of entertaining tennis.
It all came down to a few points and both players suggested they could do damage at the French Open starting on May 26.
Capriati beat Clijsters 1-6, 6-4, 12-10 in the final in Paris two years ago after the longest third set in the history of the event.