That try started on the left hand side before the ball was worked right for Keatley, Casey Laulala and Denis Hurley all to handle before Earls ran it home from a final delightful inside pass from Hurley
Worryingly however, in the lead up to that score James Coughlan was injured and has been replaced by Tommy O'Donnell while, earlier, Luke O'Dea had limped out of the action after an impressive start, to be replaced by Earls.
Ulster edged their way back into the game with 43rd minute Jackson penalty and they took the lead for the first time when Jared Payne crossed for Jackson add the extras.
Keatley restored Munster's advantage with his second drop goal of the evening before Jackson once again gave his side the lead.
To their credit Munster came looking for the winner and credit also to the home defence who laid their bodies on the line in their determination not to give the visitors the opportunity to line Ronan O'Gara, Laulala's 67th minute replacement, up for a drop goal.