A win over holders Dublin meant they topped Group C and eliminated the home team, both sides having arrived in Donnycarney with a win over Wicklow behind them.
The only blemish came in injury time when forward Anton Sullivan was sent off after receiving a second yellow card.
Dublin fielded several names that didn’t trip off the page, which is customary for this time of year, and can have no complaints about the outcome.
They trailed most of the way and after making a brief burst in the third quarter, they watched as Offaly steadied themselves with vital scores from Sullivan and Nigel Dunne.
Offaly reached the final in 2020, losing to Longford, and last won it in 1998.
They made a more positive fist of the poor conditions in the first half to lead 0-5 o 0-3 at the interval.
Their top scorer on the evening Dylan Hyland, listed at corner-forward but given a roving role, scored three points, two of those from frees, with Sullivan and Dunne also raising white flags.
Dublin rarely threatened or managed any kind of fluency, with all their first-half scores coming from the boot of Killian O’Gara – a mark, a free won by himself, and one from play.
A rare flashpoint ended in yellow cards for Jack McEvoy and Peadar Ó Cofaigh Byrne.
Offaly started with six who played in the championship defeat by Wexford last year, and they had a further sprinkling of players on the bench from that loss which denied them a chance to play Dublin in the Leinster quarter-finals.
For the home team, outside of O’Gara, only Greg McEneaney, the centre-back, and late sub Ben Millist scored from play.
Offaly open their Division 3 campaign with a trip to Corrigan Park to face Antrim on Sunday, January 29.
Dublin are in action in Division 2 the previous evening when they host Kildare at Croke Park.
Sunday’s semi-final will take place at Dowdallshill at 2pm.
Scorers – Offaly: D Hyland 0-5 (3fs); A Sullivan, N Dunne 0-2 each; J Maher (f), B Allen 0-1 each. Dublin: K O’Gara 0-4 (1f, 1m); C Basquel (fs) 0-2; G McEneaney, B Millist 0-1 each.
Offaly – I Duffy; C Donnelly, D Hogan, D Dempsey; L Pearson, P Cunningham, C Donohue; K Nugent, J McEvoy; S O’Toole-Greene, R McNamee, L Egan; N Dunne, A Sullivan, D Hyland. Subs: C McNamee for Cunningham (inj, 30); R O’Neill for O’Toole-Greene (h-t); B Allen for Dunne (51); J Maher for O’Neill (inj, 54); E Cullen for Nugent (61); D Egan for McNamee (63); C Delaney for L Egan (64); M Abbott for Hyland (72).
Dublin – H McMahon; C Tyrrell, S MacMahon, D Newcombe; A Fearon, G McEneaney, CJ Smith; P Ó Cofaigh Byrne, A Waddick; K Lahiff, A Wright, C Basquel; H Ladd, B O’Leary, K O’Gara. Subs: D Byrne for Smith (h-t); B Millist for Lahiff (44); D Conlon for McMahon & L Breathnach for Wright (46); K Lynch Bisset for Waddick (59); S Kinsella for O’Leary (60); P Duffy for O Cofaigh Byrne & S Lambe for Fearon (63); D Keating for Ladd (64); P White for Tyrrell (68).
Ref – K Olwell (Meath).