Harmanpreet Kaur(114) starred with the bat as India defeated South Africa by two runs in the warm-up fixture ahead of the upcoming ODI Women's World Cup at the Rangiora Oval on Sunday.

Chasing 245, South Africa batters Tazmin Brits (0) and Laura Goodall (18) disappointed with the bat, but Laura Wolvaardt scored 81 runs off just 94 balls but it proved ineffective as India scraped through by a difference of just two runs courtesy an effective final over from Rajeshwari Gayakwad.

Earlier, India posted 244 after it was sent into bat by South African captain Sune Luus.

READ | Indian star Smriti Mandhana hit on head in World Cup warm-up game

Going was slow for the Mithali Raj-led side, Yastika Bhatia scored 58 runs for India while Harmanpreet Kaur scored a century.

Captain Mithali Raj was run out after a mix-up with Bhatia for a duck, though the innings belonged to Harmanpreet Kaur, who raced along with little risk.

Harmanpreet played a knock of 114 runs off 119 balls as India posted a total of more than the 240-run mark.