The 25-year-old won 7-6 (11-9) 4-6 6-3 to make the last four at back-to-back Masters 1000 events after his run in Montreal last week and will now meet Frances Tiafoe for a place in the final.
It capped another impressive turnaround on the North American hard courts ahead of the US Open, which starts later this month.
Nakashima, who came into the match with a 1-4 record against Fritz, edged a tight first set, with both players dominant on serve as the match went to a thrilling tiebreak.
After trading leads and mini-breaks, Nakashima finally converted his fifth set point when Fritz sent a ball just long.
Fritz responded strongly, using aggressive returning to break Nakashima early in the second before closing out the set with an ace to force a decider.
Fritz capitalised on his opponent's unforced errors to break serve and move ahead 3-2 in the decider, but the momentum swung back almost immediately as Nakashima recovered from 30-0 down to convert his second break point of the match and level at 3-3.
Nakashima then won the final three games as Fritz's errors accumulated and the 27th seed's confidence continued to grow, serving out a win that extended the hottest run of his career and gave him his fourth top-10 victory of the season.
He will next face compatriot Tiafoe, who overcame Lorenzo Musetti 7-6 (7-2) 7-5.
Tiafoe needed more than two hours and four match points to complete the win over 10th seed Musetti on a humid night in Ohio, with nearby thunderstorms threatening but never interrupting play.