Dimitar Berbatov cancelled out Mustapha Yatabare's opener but the principality club ultimately wilted in extra time, with both the latter and Fatih Atik on target for the hostsMonaco were on the wrong end of a shock on Wednesday as Guingamp won 3-1 to book a place in the Coupe de France final.
Claudio Ranieri's men were strong favourites to progress to the big day at Stade de France with a side who are just five points above the relegation zone in the league but the principality club were completely outplayed by their hosts, who deservedly progressed after the additional period to set up a final with Brittany rivals Rennes, whom they defeated in the 2009 decider.
Mustapha Yatabare gave Guingamp the lead early on before Dimitar Berbatov equalised for Monaco late in the first half.
Ranieri's side then held on for extra time despite struggling to cope with determined Guingamp's pressure.
However, the five-time champions tired in the additional 30 minutes, with a strike from substitute Fatih Atik and a second from Yatabare sealing a famous victory for the hosts.
Guingamp took the lead after just six minutes as Yatabare beat goalkeeper Sergio Romero to a Steven Langil free kick to slot home.
Monaco struggled to find a way back into a first half of few chances, but Ranieri's side did level matters nine minutes before half-time when Berbatov struck.
The Bulgarian finished off a sweeping move, his close-range effort deflecting past Mamadou Samassa and into the net.
The visitors were, though, unable to take full control of the game and Guingamp were unfortunate not to find the winner in normal time, Claudio Beauvue seeing a header cleared off the line before Ladislas Douniama's fierce long-range drive was tipped on to the post by Romero six minutes from the end.
Guingamp's relentless pressure continued in extra time, with Yatabare flashing an excellent long-range volley narrowly wide of the post.
And their dominance finally told in the second additional period when substitute Atik's 112th-minute volley from Thibault Giresse's cross proved too hot for Romero to handle.
Yatabare then made sure of Guingamp's place in the final five minutes later when he finished off a sweeping counterattack with another fine volley into the bottom corner.