Aston Hall were made to rue five dropped catches as they slumped to their third defeat of the South Yorkshire Cricket League season.
They invited visitors Norton Oakes to bat, and struck instantly to leave them 1 for 1.
But Alex Hughes and Oakes captain Firth put on 157 before the next wicket fell.
Firth left at this point with 10 fours and 61 to his credit.
Hughes went on until he was run out, to make an impressive 137, with 19 fours and two sixes.
Norton reached a total of 253 for 6 at the end of their allotted overs.
Scott Hibbett took four for 45 for Aston.
Jack Simmonite opened with 38 for Aston, but their cause looked lost at 88 for 4.
Skipper Rob Ward made 31 and it was left for Chris Holland to make a late surge with a superb 70 not out, including six fours and a six.
At the close Aston were 235 for six, just 18 runs short.
Daniel Owen claimed three for 51.
More South Yorkshire cricket on page 47