The 26-year-old led a superb recovery after new ball bowler Shanthakumaran Sreesanth grabbed three wickets to reduce Australia to 90 for four in the 17th over. Clarke and Brad Haddin, who hit a fine 69, put on 144 runs for the fifth wicket. He was finally run out off the last ball of the innings after hitting 10 fours and three sixes.
Australia were in early trouble after Adam Gilchrist, who chose to bat after leading the side in the absence of injured Ricky Ponting, fell cheaply in the visitors first one-day game since they completed a World Cup hat-trick in April.
Gilchrist was caught by a diving Yuvraj Singh at point off left-arm Zaheer Khan for 12 and Brad Hodge was trapped leg before by Sreesanth, who also bowled Hayden for 34 and trapped Andrew Symonds (7) leg before with a slow ball.
Clarke, who scored a hundred at the same ground on his test debut in 2004, braved a painful blow on his right hand facing paceman Rudra Pratap Singh early in his innings.
He reached his hundred in style, hoisting off spinner Ramesh Powar over midwicket for six after occasional spinner Yuvraj had Haddin stumped as 87 runs came in the last 10 overs. Sreesanth took three for 55 and Khan two for 64. Saurav Ganguly did not field after leaving in the 27th over with an apparent hamstring injury.