The fourth seed will now play fifth seed Rafael Nadal, a winner earlier in the day over Fabio Fognini, in Sunday's final.
Kyrgios struck first in the match, earning two break point chances at 3-3 with a booming forehand up the line. The 12th seed converted on his second opportunity with an aggressive backhand return down the line and pumped his first in celebration.
The Aussie earned a chance to serve for the set at 5-4, but went down 15/40 after floating a backhand volley wide and received a jeer from the Stadium Court crowd after tossing his racquet to the ground in frustration. The Aussie gambled on a big second serve in the next point and double faulted, handing the break back to Federer.
Enjoying success as he charged the net with greater frequency, Federer began to unravel Kyrgios, who appeared visibly frustrated. However, the 12th seed was able to remain calm when it mattered most, saving a set point with a thunderous ace out wide to ultimately force a tie-break.
Federer earned a set point at 6/5 with a swinging forehand volley winner, but failed to convert after sending a backhand well wide. Another set point chance came and went at 7/6 before Kyrgios earned his first set point at 8/7. He missed the opportunity with a forehand error and Federer erased a second set point down 8/9 with a backhand winner.
Kyrgios rolled the dice once again on a second serve at 9/9 and double faulted. Federer made good on third set point chance, bringing the crowd to their feet after Kyrgios struck a backhand into the doubles alley.
Although Kyrgios was made to save two break points at 3-3, both players traded routine service holds throughout the rest of the second set. Federer was especially dominant on his service games, going on a 19-point run at one stage and dropping just four points en route to yet another tie-break between the pair. However, the set wasn't without its flashy moments including a between-the-legs winner from Kyrgios.
A first serve out wide gave Federer a match point at 6/5, but the Swiss maestro sent a return of serve just long to even the score. Kyrgios earned a set point at 7/6, but Federer responded with a pair of forehand winners to set up a second match point at 8/7. However, the fourth seed dumped an 88 mph second serve into the middle of the net as the crowd groaned in unison.
A forehand on the line from Federer erased a second Kyrgios set point at 9/8, but the Aussie responded with a passing shot winner in the next point. With Kyrgios serving at 10/9, he fired an ace to level the match at one set each.
Neither played faced a break point in the final set, fittingly forcing a tie-break to decide who would prevail in this extraordinary encounter. Federer blinked first, hitting a forehand well wide to gift Kyrgios a 3/1 advantage. But a brilliant challenge from the fourth seed, in which he stopped a rally to question a backhand from Kyrgios deemed inside the line, found that the ball had landed long.
Federer once again rallied from down a mini-break to level the set at 5/5. Kyrgios then shockingly threw in his most costly double fault of the evening to give Federer a third match point. The Swiss maestro made good on his chance, hitting a huge first serve to wrap up the match after three hours and 10 minutes.