Ireland's Paul Stirling joined the party as he dismissed Faf du Plessis to give South Africa another jolt in their World Cup Group B match at the Eden Gardens in Kolkata on Tuesday.
Faf du Plessis, who played a cameo along with Robin Petersen against India, was caught at first slip by former skipper Johnston.
South Africa lost wickets at regular intervals as Jacques Kallis was run out by a brilliant throw from skipper Porterfield.
Kallis scored 19 runs with the help of three boundaries before sent back to the pavilion.
None of the Proteas batsmen could captialise their start as they were 117/5 in 26.3 overs.
George Dockrell, who claimed Sachin Tendulkar's wicket in the match against India, provided Ireland third breakthrough as he dismissed dangerous looking Morne van Wyk.
van Wyk smashed seven fours and a six in his 42 runs innings that came in 41 balls.
South Africa lost openers Graeme Smith (7) and Hashim Amla (18) before 10 overs.
Brilliant direct hit by fielder John Mooney in the tenth over send Proteas skipper back to the pavilion after he laboured for his seven runs off 18 balls.
Amla hit a six and a four in his 17-ball innings before he was caught at the third man by George Dockrell off Boyd Rankin in the fifth over.
Earlier, Ireland skipper William Porterfield won the toss and decided to field against the Proteas.
Ireland called up their in-form paceman Trent Johnston, who suffered a knee injury against India, for the tie in place of Andre Botha.
Johnston, who missed the last match, is his team's second-highest wicket-taker with six in three games.
Whereas, South Africa have rested their in-form batsman AB de Villiers and gave Collin Ingrams his place in the side against the Irish.
South Africa, with six points from four games, will be assured of a place in the last eight with a victory while Ireland, with two points from four matches, only have a slim chance of qualifying.
The momentum is currently with South Africa who bounced back strongly to defeat India by three wickets in a tense finish in Nagpur on Saturday after losing a close match to England.
South Africa have shown they have depth in both bowling and batting. Their spinners, Imran Tahir, Robin Peterson and Johan Botha, were superbly backed by pacemen Dale Steyn and Morne Morkel in previous games.
South Africa's batting looked solid against India, especially after Jacques Kallis's return to form with a 69 in Nagpur after contributing just 21 in the first three matches.
Ireland not only made India battle for victory with their gritty display, but also gave a scare or two to the West Indies before losing by 44 runs in Mohali.
South Africa: Graeme Smith (Captain), Hashim Amla, Johan Botha, JP Duminy, Faf du Plessis, Colin Ingram, Jacques Kallis, Morne Morkel, Robin Peterson, Dale Steyn, Morne van Wyk (wk).
Ireland: William Porterfield (Captain), Alex Cusack, Niall O'Brien, Kevin O'Brien, George Dockrell, Trent Johnston, John Mooney, Boyd Rankin, Paul Stirling, Gary Wilson, Ed Joyce.
Pitch conditions: Batsmen are likely to dominate the proceedings at the Eden Gardens as the pitch offers even bounce. There will be something in it for the bowlers as the match progresses but they need to keep a tidy line and length.