Dimitrov won the match 3-6, 6-4, 3-6, 6-4, 6-2 Tuesday at Arthur Ashe Stadium. The victory was Dimitrov's first career win against the 20-time Grand Slam champion. Dimitrov will face Daniil Medvedev in the semifinals Friday at Flushing Meadows.
"I was more of myself throughout every point, every game that I played," Dimitrov told reporters. "In the past, it has always been very hard to play against him. He always came out pretty fiery ... the same thing happened today. It has been a long time [since] I have been on that court.
"I had a little bit of nerves, but I felt very confident from the first point."
Federer had 60 unforced errors in the 3:12 match. He also had 40 winners, compared to Dimitrov's 35.
"I thought he was tough off the baseline," Federer said. "He mixed up well, which gave me all sorts of problems with the rhythm. Could never really feel comfortable off the baseline.
"That's something in the past I've always been able to dominate [against him], I'd say. That was not the case tonight. He did a good job there."
Federer looked strong at the start of the thriller. He won the first three games of the first set to take an early lead and won the set in 29 minutes. The duo went back and forth in the second set, until Dimitrov won three consecutive points to take a 5-2 lead. Federer fought back by winning consecutive games, but Dimitrov won the set in the 10th game.
Dimitrov and Feder exchanged points again in the third set before Federer won the final four games of the 37-minute set.
The fourth set was a marathon 55-minute exchange. Federer fell behind 4-2 before fighting off seven break points in a 12-minute game to make the score 4-3. Federer and Dimitrov exchanged games before Dimitrov won the 10th game of the set, despite trailing 40-love.
Federer took a long injury timeout before the fifth and final set of the match.
"Well, I just needed some treatment on my upper -- what is it -- back, neck," Federer said. "Just needed to try to loosen it up, crack it and see if it was going to be better."
Dimitrov won the first four games of the last set. He won the match on a Federer forehand unforced error in the eighth game.
"Today was just another match for me," Dimitrov said. "I don't want to say I had nothing to lose because I felt I did. I just came out and prepared the best way that I could."