The city side were full value for their win as they led for practically all of the match. Led by Mark Bergin (0-4), they took control in the first quarter.
It looked like the Shamrocks would click into gear when Henry Shefflin brought his side to within a point of the leaders by the 24th minute but Bergin shot the perfect response, squeezing the sliotar home from the tightest of angles after a great pass from Danny Loughnane.
That goal helped O’Loughlins go in with the lead at half-time (1-7 to 0-7), but by the 41st minute Ballyhale had edged in front (0-12 to 1-8), with Shefflin again leading the way.
The game turned back the city side’s way after that, as they shot five of the next six points — Bergin got four — before Mark Kelly finished a swift team move with a goal from close range.
Although six points clear, O’Loughlins couldn’t relax. T.J. Reid brought his side right back into the reckoning with a poacher’s goal on 58 minutes.
David Burke and Jack Nolan replied with points, but O’Loughlins had to work until the final whistle after Bob Aylward’s injury-time goal left just two points between the sides.
Scorers for O’Loughlin Gaels: Mark Bergin (1-9, 0-6 frees), Mark Kelly (1-1), Martin Comerford (0-3), David Burke and Jack Nolan (0-1).
Scorers for Ballyhale Shamrocks: Henry Shefflin (0-8, 0-6 frees), TJ Reid, (1-2, 0-1 free), Bob Aylward (1-0), James ‘Cha’ Fitzpatrick, Colin Fennelly, Mark Aylward (0-1 each).
O’Loughlin Gaels
1. Stephen Murphy
2. Anthony Forristal
3. Andy Kearns
4. Eddie Kearns
5. Huw Lawlor
6. Brian Hogan
7. Paddy Deegan
8. Mark Bergin
9. Shane Mahoney
10. David Burke
11. Eoghan Grant
12. Martin Comerford
13. Sammy Johnson
14. Danny Loughnane
15. Mark Kelly
Subs
19. Jack Nolan for Mahoney (26)
18. Conor Bergin for Johnson (35)
Ballyhale Shamrocks
1. Richie Reid
2. Keith Nolan
3. Joey Holden
4. Alan Cuddihy
5. Paul Shefflin
6. Michael Fennelly
7. Padraig Holden
8. Ronan Corcoran
9. David Hoyne
10. James ‘Cha’ Fitzpatrick
11. Aidan Cummins
12. TJ Reid
13. Henry Shefflin
14. Colin Fennelly
15. Mark Aylward
Subs
29. Eoin Reid for Cummins (22)
20. Brian Cody for M. Aylward (54)
17. Bob Aylward for Hoyne (56)