Philander took five wickets while Steyn chipped away with four as SL bundled out for 180.
Centurion: Fast bowlers Vernon Philander and Dale Steyn shared nine wickets on Thursday as Sri Lanka again struggled in South Africa to be bowled out for 180 on day one of the first Test.
The Proteas were then 90-1 in their first innings at close of play at SuperSport Park to take firm control of the series opener despite captain Graeme Smith's dismissal for 61 in the second-last over of the day.
Sri Lanka has never won a Test in South Africa - losing six of their seven previous matches - and was immediately under pressure in their first series in the country in nine years when Philander and Steyn combined on a bouncy, seaming surface.
Philander continued his remarkable start in Test cricket with 5-53, his third five-wicket haul in three matches, and Steyn became the second-fastest bowler to 250 wickets as he took 4-18.
Sri Lanka, which is on a 14-match winless streak in Tests, managed two half-century partnerships to recover to 156-4 after early trouble at 12-2.
But bustling right-arm seamer Philander took two wickets in two balls - and three in the afternoon session - to snuff out the promising fightback and Steyn ripped out the tail to end Sri Lanka's innings just before tea. Legspinner Imran Tahir returned 1-22 and the only wicket to fall to a slow bowler on the opening day.
Veteran batsman Thilan Samaraweera (36) had anchored the second of Sri Lanka's fighting stands - having not been in the initial squad for the tour - to lift the tourists' spirits.
He combined for a 65-run stand with topscorer Angelo Mathews (38) after lunch as Sri Lanka's middle order responded to a perilous position at 91-4 by counterattacking with a flurry of boundaries. Samaraweera hit five fours and Mathews struck six and they added 50 off 59 balls in 48 minutes.
But Samaraweera's dismissal began Sri Lanka's slide as it suddenly lost 6-24 in five overs under Philander and Steyn's afternoon onslaught, with the pace pair bullying the batsmen and justifying Smith's decision to put the tourists in after winning the toss.
The Proteas also have much to prove in the three Tests against Sri Lanka having not won a home series since 2008, and having let strong positions slip in draws against Australia, India and England.
Smith and fellow opener Jacques Rudolph (27 not out) cemented South Africa's advantage with an 88-run opening partnership, but Sri Lanka had a glimpse of hope when Smith was out lbw to Dilhara Fernando (1-21) just before stumps.
The South Africa skipper had taken charge of the partnership with seven boundaries to go past 50 before he missed a straight one from Fernando seven balls from the close.
Having picked up the wickets of No. 1 Test batsman Kumar Sangakkara and opener Tharanga Paranavitana in the morning, Philander removed Samaraweera and wicketkeeper Kaushal Silva off successive balls in a key spell in the middle of the day on his way to his third five-wicket haul. He has taken 19 wickets in five innings over three matches and was the first South African to take five in each of his first three Tests.
Samaraweera went to a faint edge behind and Silva gloved a legside to delivery to Mark Boucher first ball. Both decisions were given out after video reviews by South Africa.
Philander had Mathews caught at slip off a fizzing, head-high delivery for his fifth wicket, and Steyn clean bowled tailenders Chanaka Welegedara and Dilhara Fernando off successive balls to end the innings and ensure the Proteas cashed in on helpful early conditions.
Steyn's first wicket, that of Sri Lanka captain Tillakaratne Dilshan, took him to 250 wickets in his 49th test - one match more than former Australia great Dennis Lillee.
Samaraweera, Mathews, opener Paranavitana (32) and Mahela Jayawardene (30) had all got starts for Sri Lanka, but couldn't launch prolonged attacks as South Africa wrestled control.