Substitute Martin Clowry was the hero for Carlow as his 68th minute goal gave them a five-point lead with just three minutes remaining. Westmeath were reduced to 13 players by that stage as Paul Greville (55th minute) and John Gilligan (63rd) were both sent off.
A poor first-half ended with Carlow leading 0-6 to 0-4. The second-half improved and just one point divided the sides by the 50th minute when Carlow surged ahead. A point each by Daryl Roberts and Andrew Gaule and two by Paudie Kehoe saw them stretch their lead to five.
Westmeath then lost Paul Greville, followed by Gilligan eight minutes later, but by then Westmeath had cut the gap back to three points. A vital save by Carlow keeper Frank Foley denied Brendan Murtagh a goal at a crucial stage and then the final few minutes saw the extra men pay off for Carlow as Ross Smithers set up Martin Clowry for a clinching goal.
Scorers for Carlow: M. Clowry (1-0), P. Kehoe (0-3, 0-2 from frees), S. Kavanagh (0-3 from frees), M. Kavanagh (0-2 from frees), C. Doyle (0-2), A. Gaule (0-2), D. Roberts (0-1), J. Kavanagh (0-1).
Westmeath scorers: B. Murtagh (0-5, 0-2 from frees), N. O’Brien (0-5, 0-3 from frees, 0-1 from a ’65), D. McCormack (0-2).
CARLOW: F. Foley; A. Corcoran, E. Nolan, D. Shaw; J. Corcoran, S. Kavanagh, E. Coady; J. Kavanagh, R. Coady; E. Byrne, J. Kane, A. Gaule; P. Kehoe, C. Doyle, M. Kavanagh.
Subs: D. Roberts for J. Kane (25), J. Rogers for R. Coady (32), M. Brennan for M. Kavanagh (45), R. Smithers for A. Gaule (58), M. Clowry for J. Rogers (65).
WESTMEATH: S. McGovern; C. Jordan, A. Price, P. Fennell; P. Gilsenan, J. Gilligan, P. Dowdall; A. Clarke, J. Clarke; P. Greville, B. Murtagh, D. McCormack; N. O’Brien, J. Shaw, D. Carty.
Subs: R. Greville for J. Shaw (ht), A. Mitchell for P. Gilsenan (44), D. Fennell for D. Carty (49), A. McGrath for P. Dowdall (54).
Referee: Colm Lyons (Cork).