Caberfeidh swept Skye aside 5-1 in Portree to reach the MacTavish Cup final against Kingussie in Inverness on 11 June.
Kingussie extended their lead in the Mowi Premiership to four points with a 2-0 away win over Kyles, while Newtonmore were pegged back to a 2-2 draw in the final minute by Lovat.
Newtonmore hold on to second place despite Kinlochshiel's 2-1 defeat of Glasgow Mid Argyll, while Fort William replace local rivals Kilmallie at the bottom of the table after Kilmallie's 1-0 victory in their derby at An Aird.
It was almost half time before Kevin Bartlett and Craig Morrison gave Caberfeidh a double breakthrough and Skye then conceded three goals in three minutes of play when Morrison added the second of his hat-trick just after the restart. Bartlett upgraded to a double and Skye's consolation came from Taylor Matheson with a minute left.
Ruaraidh Anderson and Roddy Young kept Kingussie's 100% season's record intact with goals late in the first half at Tighnabruich.
John MacRae scored Kinlochshiel's opener, but Mid Argyll equalised with a Calum McLay penalty early in the second half. Shiel's winner also came from the spot when Keith MacRae converted at the death.
There was another late conclusion at The Eilan, where Marc MacLachlan gave Lovat the lead midway through the first half before Conor Jones and Duncan MacPherson put Newtonmore ahead in the second. MacLachlan completed a double in the final minute to salvage a point for Lovat.
This leaves Kingussie top of the Premiership on the full 16 points from eight games, four clear of Newtonmore, who head KInlochshiel by a point.
Callum MacDougall scored the only goal at An Aird that projected Kilmallie three places up the table. They are replaced at the bottom by Fort William, but just one point separates the bottom four clubs.
There was no change at the top of the National Division with victories for the top three. Leaders Beauly eclipsed Oban Celtic 7-1 at Mossfield and there were home wins for Lochaber, 2-1 over Glenurquhart, and Inveraray, 2-0 against Aberdour.