Miller, Markram power South Africa past India at T20 World Cup
India's opening bowlers made early inroads on the quick and bouncy Perth wicket.
Left-arm quick Arshdeep Singh struck twice in the space of three deliveries of the second over with Quinton de Kock out for one and Rilee Rossouw, who made a century in the previous match against Bangladesh, this time out lbw for nought.
Markram hit back with two fours but captain Temba Bavuma's dry run with the bat extended as he nicked one to the wicketkeeper Dinesh Karthik while attempting a scoop shot off Mohammed Shami.
Kohli drop
Markram and Miller took the innings to 40-3 at the halfway mark.
They then opened up against off-spinner Ravichandran Ashwin with a boundary each in the 11th over but the bowler was left crestfallen when the normally safe hands of Virat Kohli at deep midwicket dropped a routine chance from Markram, on 35.
India were dogged by sloppy fielding as Rohit Sharma missed a run out and another catch going awry on the boundary.
Markram raised his fifty with a four and two runs off Arshdeep as South Africa closed in on their target.
Hardik Pandya broke the stand when Markram holed out to Suryakumar Yadav but Miller stood firm to see his team home.
Earlier Ngidi led a fiery pace onslaught to keep India to a below-par total after they chose to bat.
Yadav smashed a 40-ball 68, laced with six fours and three sixes, and put on a key stand of 52 with Dinesh Karthik to help India recover from 49-5.
Ngidi returned figures of 4-29 off his four overs, ably supported by fellow fast bowler Wayne Parnell who finished with 3-15 after starting the innings with a T20 rarity -- a maiden over.
The in-form Yadav, who hit an unbeaten 51 against the Netherlands in their previous win, even smashed Ngidi for a huge six over fine leg to bring alive a large Indian contingent in the crowd. He reached his fifty off 30 balls with another four.
Karthik tried to join the attack but fell to Parnell, who broke a stand that had been worth 52 before the same bowler dismissed Yadav in the 19th over.