Ireland won with five balls to spare as they finished on 329 for seven after England, who had made 327 for eight, had been cruising when they reduced non-Test playing Ireland to 111 for five.
But a brilliant burst of power-hitting got O’Brien to three figures in just 50 balls at the Chinnaswamy Stadium.
That meant he’d obliterated former Australia opener Matthew Hayden’s previous fastest World Cup century record off 66 balls against South Africa at St Kitts in 2007.
O’Brien’s whirlwind innings of 113 off 63 balls, including six sixes and 13 fours, ended when he was run out by Stuart Broad’s throw to wicketkeeper Matt Prior.
Ireland’s target was down to three off the last over and victory was secured when John Mooney struck a four off James Anderson.
“I don’t think it’s quite sunk in,” said 26-year-old O’Brien, after another famous win to follow Ireland’s shock World Cup triumph over Pakistan in 2007.
“It’s probably the best innings I’ve ever played. I just hit the ball pretty well and got a bit of luck and things went my way. I just kept going and kept attacking.
“When we were 111-5 I said to myself we could have just pottered around and got 220 off 50 overs for eight or nine and the game would have been pretty boring to watch.
“But I just chanced my arm and said I was going to be as positive as I can and got a few away and didn’t look back.”
It was the highest successful run chase in World Cup history beating Sri Lanka’s 313 against Zimbabwe at New Plymouth in New Zealand in 1992
“It’s pretty amazing,” said Ireland batsman Alex Cusack, who made 47 in a decisive sixth-wicket partnership of 162 with O’Brien.
“I was just trying to knock it around for Kev. He’s got the power. That was my job and he was playing the big shots.”
England captain Andrew Strauss said: “We thought we’d done a reasonable job with the bat and we got Ireland at five down and things were looking pretty comfortable.
“But we weren’t reckoning on an outstanding innings from Kevin O’Brien. It was pretty brutal.”
Mooney struck several superb blows of his own on his way to 33 not out to complete a fine all-round display after he had claimed four wickets for 63 runs with his medium-pacers.
O’Brien went to fifty in 30 balls when he pulled Anderson for six.
He then lofted Anderson for an enormous six over midwicket, with television replays estimating the ball had carried for 102 metres, the longest of the tournament.
O’Brien did have a break on 91 when a huge skyer off Paul Collingwood was dropped by Strauss.
Ireland burst into life during the batting powerplay, scoring 62 runs in five overs.
It was the second-time in a matter of days the Chinnaswamy Stadium had served up a run-fest after Sunday’s extraordinary tie between India and England had seen the two teams make 676 runs between them.
Anderson, whose first overs yielded one wicket for 11 runs, finished with figures of one for 49 in 8.1 overs while Broad was pummelled for 73 runs in nine wicketless overs.
Earlier Jonathan Trott equalled the record for the fastest 1,000 runs in one-day internationals
Trott’s 92 was the centrepiece of England’s 327 for eight and when he made 64 he equalled West Indies great Vivian Richards and England team-mate Kevin Pietersen in taking just 21 innings to reach four figures in ODIs.
Ireland’s victory was all the more impressive as they lost captain William Porterfield to the first ball of their reply when he dragged on to Anderson.