The victory means that Barcelona have yet again booked a spot in the final for the sixth straight season.
A dominant yet wasteful Real ravaged their rivals in the first half while spurning a string of clear chances at the Santiago Bernabeu.
Yet Barca went ahead against the run of play in the 50th minute as Ousmane Dembele led a counter-attack and Suarez slotted his pass into the net.
Spearheaded by the pace and confidence of Brazilian teenager Vinicius Jr, Madrid continued to fly forward but failed to find the target.
Barca effectively killed off the tie when Raphael Varane bundled the ball into his own net as he tried to prevent Suarez reaching another cross from Dembele.
Suarez then earned a penalty and further humiliated Madrid by converting with an audacious ‘Panenka’, deceiving goalkeeper Keylor Navas by chipping the ball into the net.
La Liga leaders Barca will visit Real again in the league on Saturday.
The Catalans, who are bidding to win the trophy for a record fifth consecutive year, will play either Real Betis or Valencia in the final on May 25 at Betis’ Benito Villamarin stadium.
Valencia host Betis in their second leg on Thursday, having drawn 2-2 in the first leg. (Reuters/NAN)