The JSE opened firmer on Thursday, led by banks and general retailers, as global markets rallied.
This followed a slight easing of political tension in Italy, with talks resuming between populist parties to form a new government.
A firmer rand boosted positive trade in the market as a whole, with even miners gaining following a renewed spike in the oil price and firmer metal prices.
The platinum price was up 0.61% to $913.8 an ounce.
The Dow closed 1.26% higher on Wednesday, reversing three days of losses. Asian markets lifted despite warnings that a trade war between the US and China remained a real possibility.
The Nikkei 225 rose 0.83% and the Hang Seng 1.49%, with Tencent adding 1.5%.
“Investors viewed the selloff as overdone and the rise in the oil price supported the energy sector,” analysts at Nedbank Corporate and Investment Banking said.
Brent oil softened marginally to $77.512 a barrel after rising from levels about $74.54 on Wednesday.
The euro recovered more than 1.4% against the dollar from a 10-month low of $1.1506, its strongest daily performance since January. Also helping the euro was the German jobs data report, which showed that unemployment fell to a new record low of 5.2% in May.
Reports in the Washington Post on Thursday suggested that US President Donald Trump planned to announce steel and metal tariffs on Mexico, Canada and Europe set to come into force as early as Friday, FxPro analysts said.
At 10am the all share was 1.06% higher at 56,193.20 and the top 40 gained 1.15%. Banks rose 2%, the platinum index 1.93%, general retailers 1.5%, financials 1.37% and resources 1.21%.
Anglo American rose 1.91% to R299.95 and Sasol 1.84% to R458.67.
British American Tobacco added 0.97% to R637.60.
Standard Bank rose 2.94% to R208.47 and FirstRand 1.89% to R61.05.
Steinhoff International shed 2.34% to R1.25.
Growthpoint rose 2.4% to R27.75 and Vukile 1.35% to R21.82. Vukile reported dividend growth of 7.7% for the year to end-March on Wednesday.
Naspers was up 1.03% to R3,051.44.