Benfica have won the Taca da Liga in seven of the last eight seasons, but that streak will not be extended this year after a shock semi-final loss to Moreirense.
Instead, the final will be contested by Braga and Moreirense after the minnows beat Benfica 3-1 at Estadio Algarve.
Moreirense reached their first final in the competition despite falling behind to Eduardo Salvio’s sixth-minute goal on Thursday.
But the side who finished 12th in last season’s Primeira Liga fought back against the Portuguese champions, with Ousmane Drame’s second-half equaliser giving them hope before a double from Emmanuel Boateng proved decisive.
Moreirense’s shock campaign already saw them finish top of a group that included Porto.
Defeat comes out of the blue for Rui Vitoria’s Benfica, who are four points clear of Porto at the top of the league and a massive 28 points better off than Moreirense in 15th.
Benfica had come into the game having won 10 consecutive matches against Moreirense.
Braga won the other semi-final 3-0 against Vitoria de Setubal on Wednesday. The final will be played on Sunday, again at Estadio Algarve.