Centurion - England dismissed South Africa's first three batsmen after deciding to bowl on the first morning of the first Test at SuperSport Park on Thursday.
LIVE: Proteas v England - 1st Test, Day 1
South Africa were 79 for three at lunch, with James Anderson, Sam Curran and Stuart Broad taking a wicket apiece.
Although England captain Joe Root said he wanted to take advantage of "live grass" on the pitch, having opted for an all-seam bowling attack, the first two wickets owed more to loose strokes than the conditions.
Anderson, who became the first specialist bowler to appear in 150 Tests, took a wicket with his first ball, a loosener down the leg side which Dean Elgar glanced to wicketkeeper Jos Buttler.
Aiden Markram hit four boundaries in an innings of 20 before flicking a ball from the left-armed Sam Curran to Jonny Bairstow at midwicket.
Hamza, playing in his third Test, looked good in making 39 before being squared up by Broad and edging a catch to Ben Stokes at second slip.
All-rounder Stokes was in the England team even though his father, Ged, remained in a Johannesburg hospital with a serious illness. According to a team spokesman, there was no change to Ged Stokes' condition, which was described as "stable" on Wednesday.
Three England players were ruled out because of illness - Ollie Pope, Chris Woakes and Jack Leach. All three remained "in quarantine" at the team hotel, according to the England spokesman.
The South African team included two new caps in batsman Rassie van der Dussen and batting all-rounder Dwaine Pretorius.
England captain Joe Root said the decision to pick five seam bowlers had been made because of the conditions and not because of Leach's illness.
England wore black armbands in memory of former captain Bob Willis.