Bray, a 33-year-old opening batsman, was undefeated on 115 from 137 balls, as Ireland, sent in to bat under overcast skies, reached 221 for nine from their allocation of 50 overs.
Australian-born Bray, who works as a fitness instructor, remained steadfast, despite wickets tumbling around him and reached his landmark, when he square drove Christopher Mpofu to third man for the last of his 10 boundaries.
The left-hander scored his maiden ODI hundred earlier this year against Scotland in the ICC World Cricket League in Kenya.
He did not offer a sniff of a chance, striking the ball with crisp assurance, including an upper cut off Mpofu that sailed over third man for the first of his two sixes.
Apart from Bray, a few other Irish batsmen got starts, but failed to carry on. Andrew White scored 28, Eoin Morgan got 21, and skipper Trent Johnson contributed 20.
Elton Chigumbura was the pick of the Zimbabwe bowlers with two wickets for 21 runs from six overs.
Gary Brent collected two for 40 from 10 overs and Mpofu snared two for 58 from 10 overs.
Mpofu provided Zimbabwe with the breakthrough, when he had William Porterfield caught at second slip for a duck off the last ball of the first over.
Eoin Morgan got Ireland moving in a 43-run, second wicket partnership with Bray before he guided Brent to first slip in the 10th over.
With the Zimbabwe bowlers getting flattering bounce and movement from the pitch, the problems continued for Ireland.
Niall OBrien was caught behind off Chigumbura for one, and Andre Botha suffered the indignity of being bowled for one by the same bowler offering no stroke to a delivery that moved back.
Kevin OBrien joined Bray and they stemmed the flow of wickets, but he was caught behind off Edward Rainsford for 10 edging a loose drive at a ball that moved away in the 22nd over.
White arrived and added 56 for the sixth with Bray that put Ireland back on track before he was adjudged lbw to Brent for 10 playing across a slower delivery.
Trent Johnston, the Irish captain, was busy building the innings with Bray when a 25-minute stoppage for rain interrupted the two Irish batsmen.
When play resumed, Johnston was run out in the 44th over and, without addition to the total, Kyle McCallan was stumped for a duck off Sean Williams to leave Ireland on 182 for eight.
Ireland owed their final total to Bray and Dave Langford-Smith, who was dismissed off the last ball of the innings bowled by Mpofu.
The last time Zimbabwe played Ireland was in a two-match limited-overs series four years ago which was split between the two sides.
Ireland won the first match by 10 wickets in Belfast, and Zimbabwe rebounded to take honours two days later by eight wickets at Eglinton.
Ireland 221 for 9 in 50 overs (Jeremy Bray 115 n o, eddie Morgan 28, White 21, Johnston 20; Chigumbura 2 for 21, Brent 2 for 40, Mpofu 2 for 58) Vs Zimbabwe (yet to bat).