Shikhar Dhawan struck a maiden one-day international century to help India beat injury-hit South Africa by 26 runs and leave the Champions Trophy favourites on the back foot after the opening game on Thursday.
India, hurt by spot-fixing allegations in their home Twenty20 tournament, forgot their worries to seize the initiative in Group B after smacking 331 for seven off their 50 overs and watching South Africa fail to get close.
The gamble to open with Colin Ingram backfired when he was caught in the slips for six and despite Ryan McLaren hammering 71 not out, the Proteas were bowled out for 305.
India opener Dhawan, in his sixth ODI, scored 114 off 94 balls as he stylishly dominated the inconsistent South African bowling which was already without stricken paceman Dale Steyn and lost Morne Morkel to a groin strain when bowling mid-over.
"We got off to a really good start," India captain Mahendra Singh Dhoni told the post-match ceremony. "The boys played with plenty of aggression but at the same time it was controlled."
The ICC's second 50-over tournament, set to be the final Champions Trophy with a world test championship slated for 2017, opened with a video by Britain's Prince Charles - the Prince of Wales - welcoming teams and fans to Cardiff.
Early temperatures were still lower than average for Britain in June but openers Dhawan and Rohit Sharma soon warmed up the Indian-dominated crowd at a less than full Sophia Gardens.
With the South African field up for the first 10-over powerplay, the pair took advantage with a series of graceful shots as the bowlers struggled to extract any real movement.
South Africa captain AB De Villiers said talisman Steyn should be fit for the second game against Pakistan on Monday and on this evidence, his attack desperately need him back, especially if Morkel is a doubt.
India reached 53-0 after 10 overs and never looked back despite Sharma falling for 65 when he was caught by Robin Peterson off the bowling of McLaren, who ended up as the only South African bowler with any credit with three for 70.
Dhawan had a life on 70 when Morkel failed to pick up a hook at deep backward square and the ball sailed over his head for four after another bad ball by the struggling Rory Kleinveldt.
Virat Kohli (31) came and went before Dhawan was finally caught playing a lofted sweep off JP Duminy.
The South African bowlers limited the damage slightly late on, with big-hitting Dhoni out for 27 but India still scored the highest ODI total at the little-used Cardiff ground as Ravindra Jadeja finished on 47 not out.
Peterson shone in South Africa's reply with a confident 68 before he was run out by Jadeja at mid-wicket after a mix-up with De Villiers (70).
They were ahead of the required run rate early on but wickets began to tumble with the captain going shortly after escaping a run out when he top-edged a pull to Jadeja after clever bowling by Umesh Yadav.
David Miller was run out without facing a ball as Faf du Plessis slipped, leaving the Proteas with too much to do and McLaren's late flurry always looked in vain.
"With the bat in our hand we got ourselves in a great position to win the game," De Villiers said. "We just ran out of wickets.
"I thought we adapted really well and fought back. The game was in our hands, we'll take a lot of positives from that."
The relatively short and uncomplicated Champions Trophy, in contrast to the elongated World Cups of late, has two groups of four with the top two from each going to the semi-finals.
The final is at Birmingham's Edgbaston on June 23 with Cardiff and the Oval in London the other host grounds.
Pakistan play West Indies in Group B at the Oval on Friday.
SOUTH AFRICA INNINGS
Last wicket partnership delaying India's celebrations. SA are 284 for 9 in 47 overs.
South Africa get 15 runs from that over. They are 272 for 9 in 44 overs.
L Tsotsobe b Jadeja 3 (14b 0x4 0x6)
Jadeja picks another as South Africa are 257 for nine in 43 overs.
South Africa need 79 runs from 54 balls.
India inching closer to victory. South Africa need 81 from 60 balls with only two wickets in hand.
R Kleinveldt c Dhoni b I Sharma 4 (5b 0x4 0x6)
Another wicket and South Africa losing the battle here. They are 251 for 8 in 39.5 overs.
The required run rate going up. South Africa are 246 for 7 in 39 overs.
South Africa are 240 for 7 in 38 overs.
Hopes fading as South Africa lose du Plessis. South Africa are 238 for 7 in 37.3 overs.
A steady partnership building up, but South Africa still have a long way to go. They need 99 from 78 balls. SA are 233 for 6 in 37 overs.
Focus on du Plessis. South Africa need 110 from 84 balls.
One rare good over for South Africa.13 runs from that as South Africa reach 212 for 6 in 35 overs. They now need 120 in 90 balls.
It's getting difficult for South Africa now. But du Plessis is still there. He is capable of turning things around. SA are 199 for 6 in 34 overs.
D Miller run out 0 (0b 0x4 0x6)
Terrible moment for David Miller, is run out without facing a ball. South Africa are 187 for 6 in 33 overs. Maiden over from Raina.
South Africa in distress. They are 187 for 5 in 32 overs. They need 145 from 108 balls.
AB de Villiers c Jadeja b Yadav 70 (71b 7x4 0x6)
South Africa slumping. Lose a big wicket of AB de Villiers. SA are 184 for 5 in 31.4 overs.
Great over from Jadeja. South Africa are 182 for 4 in 31 overs.
JP Duminy lbw b Jadeja 14 (24b 0x4 0x6)
Jadeja strikes and Duminy is gone. South Africa in trouble.
It's a tough chase as South Africa need 152 in 120 balls. They are 180 for 3 in 30 overs.
South Africa reach 174 for 3 in 29 overs. SA needs some big shots.
South Africa need 162 from 132 balls. They are 170 for 3 in 28 overs.
Indian bowlers keeping it tight. South Africa are 166 for 3 in 27 overs.
South Africa will need another big partnership. But India are making things difficult for them. SA are 162 for 3 in 26 overs.
That wicket puts pressure on South Africa half way through the innings. They reach 155 for 3 in 25 overs.
Duminy is in.
R Peterson run out 68 (72b 6x4 0x6)
Unlucky Peterson is run out. He was looking solid. But great work from Jadeja. South Africa are 155 for 3 in 24.3 overs.
South Africa reach 154 for 2 in 24 overs.
India need to break this partnership. Things looking great for South Africa for now as they reach 149 for 2 in 23 overs.
Another good over as South Africa reach 135 for 2 in 20 overs.
Just four runs from that over. South Africa are 129 for 2 in 19 overs.
Peterson gets his half century. Partnership going great as South Africa reach 125 for 2 in 18 overs.
Boundaries seem to have dried up. Good spin bowling from India. South Africa are 118 for 2 in 17 overs.
Accurate opening over from Jadeja. Just two runs from it. South Africa are 116 for 2 in 16 overs.
Only singles off that over as South Africa reach 114 for 2 in 15 overs.
Partnership reaches 78. India looking for a wicket here. South Africa are 109 for 2 in 14 overs.
Spinner comes into attack. Ashwin to bowl. Runs in singles as South Africa reach 99 for 2 in 13 overs.
Things going smooth for South Africa as they reach 93 for 2 in 12 overs.
The partnership going strong between Villiers and Peterson. Crosses 50 and South Africa are 87 for 2 in 11 overs.
de Villiers knows he can't allow the runrate to shoot up, smashes two boundaries to get a good over for South Africa as they reach 77 for 2 in 10 overs.
South Africa need 263 from 41 overs. The current partnership will be crucial. They reach 69 for 2 in 9 overs.
Good over for South Africa.11 runs coming off it. SA are 63 for 2 in 8 overs.
Things looking steady for South Africa as they reach 52 for 2 in 7 overs.
South Africa are 46 for 2 in 6 overs.
South Africa recovering slowly. But they have a long way to go. SA are 42 for 2 in 5 overs.
H Amla c Dhoni b Yadav 22 (15b 4x4 0x6)
After three boundaries, Amla surrenders his wicket to Yadav. South Africa in trouble at the moment. They are 31 for 2 in 4 overs.
South Africa are 17 for 1 in 3 overs.
C Ingram c Raina b Kumar 6 (5b 1x4 0x6)
Bhuvneshwar Kumar strikes early for India. Removes Ingram and South Africa are 13 for 1 in 2.1 overs.
Ingram, Amla open for South Africa. SA are 6 for no loss in 1 over.
Jadeja scored an unbeaten 47 off 29 balls as India reached a superb 331 for 7 in 50 overs.
for Jadeja continues the onslaught and Ashwin join him as India are 321 for 6 in 49 overs. One more to go and Jadeja is on 38
Jadeja fires two boundaries as India reach 308 for 6 in 48 overs.
Six runs from that over and India are 297 for 6 in 47 overs.
MS Dhoni c du Plessis b Tsotsobe 27 (26b 3x4 0x6)
Tsotsobe takes the prized wicket of Dhoni. India are 291 for 5 in 46.1 overs.
Seven from that over off Kleinveldt and India are 291 for 5 in 46 overs.
A steady partnership building up. India are 284 for 5 in 45 overs.
A good over for India. Jadeja looking strong here. India are 279 for 5 in 44 overs.
Great recovery from the Proteas as Jadeja comes in to bat. India are 250 for 5 in 42 overs.
S Raina c Duminy b McLaren 9 (6b 0x4 1x6)
Another wicket. India contiune to lose wickets and Raina is out. India are 260 for 5 in 41.4 overs.
Raina hammers a huge six and India are 249 for 4 in 40 overs. Last 10 overs will be crucial for India.
Raina is in. Two big hitters in the middle. India can hope for some quick runs. But South Africa strongly getting back into the game.
D Karthik c de Villiers b McLaren 14 (15b 1x4 1x6)
Wickets going regularly for India. Good catch taken by AB. India are 240 for 4 in 39.2 overs.
11 runs coming off that over. A boundary each from Karthik and Dhoni. India are 239 for 3 in 39 overs.
Skipper Dhoni comes in. India are 228 for 3 in 38 overs.
S Dhawan c sub b Duminy 114 (94b 12x4 1x6)
Big wicket for South Africa. Great knock from Dhawan comes to an end.
Dhawan continues to excel. He reaches 114. India are 220 for 2 in 37 overs.
India are 214 for 2 in 36 overs.
Karthik, who got two centuries in the warm up matches, is in.
Relief for South Africa. They pick up another to get Kohli as India reach 201 for 2 in 34.2 overs
V Kohli c Amla b Tsotsobe 31 (41b 2x4 0x6)
Two successive boundaries from Kohli and India are 209 for 1 in 34 overs.
Dhawan survives as de Villiers misses a regulation stumping. South Africa did not want that at this time. India are 199 for 1 in 33 overs.
A great knock from Dhawan as he gets his maiden ODI century. He got his first century against Australia in Tests only recently. India are 194 for 1 in 32 overs.
India have laid a strong platform as they reach 183 for 1 in 31 overs.
Dhawan enters the 90s as India reach 179 for 1 in 30 overs
Only one run coming off that over. Kohli taking his time. India are 173 for 1 in 29 overs.
Another tight over from South Africa. India are 172 for 1 in 28 overs.
Good over for South Africa. Only four runs off it. India are 168 for 1 in 27 overs.
Dhawan reaches 82 as he continues to dominate. India are 164 for 1 in 26 overs.
Dhawan looing strong half way through the mark while Kohli does the waiting act. India are 154 for 1 in 25 overs.
A boundary and a six from Dhawan. India are 146 for 1 in 24 overs. Dhawan on 69.
India are 134 for 1 in 23 overs. Kohli taking his time to settle down. Dhawan on 58.
Kohli in and India are 129 for 1 in 22 overs.
R Sharma c Peterson b McLaren 65 (81b 8x4 1x6)
Sharma is out scoring a fine 65. India are 127 for 1 in 21.2 overs
Three runs from that over. India are 126 for no loss in 21 overs.
India in a strong position with openers crossing the 50-run mark. India are 123 for no loss in 20 overs.
Dhawan gets to his half century in 44 deliveries.
Dhawan on 49 as India reach 115 for no loss in 19 overs.
South Africa desperate for a wicket here. But Indian openers look comfortably settled. India are 109 for no loss in 18 overs.
14th half century for Rohit Sharma. India are 104 for no loss in 17 overs.
Partnership of 100 comes in 94 balls. Sharma on 48, Dhawan on 45. India are 101 for no loss in 16 overs.
Sharma smacks two consecutive boundaries as India reach 96 for no loss in 15 overs.
Two boundaries and India are building on a strong total here. They reach 82 for no loss in 14 overs.
Spin introduced. But India still going steady as they reach 72 for no loss in 13 overs.
India did not have the best of the starts during the warm-ups but here they are proving to be dangeours. India are 67 for no loss in 12 overs.
Sharma reaches his 30s. India are 59 for no loss in 11 overs.
South Africa look desperate for wicket as India are making a strong progress. They reach 53 for no loss in 10 overs.
India going steady as they reach 47 for no loss in 9 overs.
Two boundaries from Rohit Sharma and India are 39 for no loss in 8 overs.
Sharma gets a boundary in off Morkel. Things looking good for India at the moment. They are 30 for no loss in 7 overs.
A good over for India. A six from Sharma followed by a boundary from Dhawan. Indian openers slowly opening up as they reach 26 for no loss in 6 overs.
Still a cautious approach. Only two runs from that over as India are 15 for no loss in 5 overs.
Sharma got his first boundary. Lovely cover drive and India are 13 for no loss in 4 overs.
Dhawan and Sharma taking their time. Very cautious apporach as Morkel continues to impress. India are 7 for no loss.
South Africa bowlers still dominating. This time its Tsotsobe who concedes only four runs. India are 5 for no loss.
Morkel makes a fine start. Good over from him. India are 1 for no loss in 1 over.
South Africa have won the toss and put India into bat in the Champions Trophy opener at Sophia Gardens in Cardiff, Wales on Thursday.
Dale Steyn misses out for South Africa with an injury.
India have left out Murali Vijay. Rohit Sharma to open batting while Dinesh Karthik will come in the middle order, according to Dhoni.
Former Indian player turned commentator Sanjay Manjrekar has tweeted: "Murali Vijay unfortunate to miss out. Don't agree with that selection. But good luck to Rohit Sharma opening the innings." (@sanjaymanjrekar)
South Africa skipper AB de Villiers revealed that Colin Ingram is to open batting.
INDIA - S Dhawan, RG Sharma, V Kohli, D Karthik, S Raina, MS Dhoni, R Jadeja, R Ashwin, B Kumar, I Sharma, U Yadav
SOUTH AFRICA - H Amla, C Ingram, F du Plessis, AB de Villiers, JP Duminy, D Miller, R McLaren, R Peterson, R Kleinveldt, M Morkel, L Tsotsobe