UCD, who last won this competition in 1996, clung on for a slender one-point victory in a dramatic tie at a blustery Belfield.
Mannion kicked 0-5, including four from play, while McCaffrey netted an early goal as UCD advanced to finals weekend for the first time since 2011.
At half-time, the hosts were 2-9 to 1-1 clear but they had to withstand a fierce second-half fightback from a DCU side playing with the wind.
Mannion, one of Dublin’s goalscorers in last year’s All-Ireland final victory over Mayo, said: “Speaking at half-time, we knew it was going to become more of a running game, with very few balls into the forward line. It was just a matter of making the most of that and when we did get our chances, that we could take them.”
And Mannion is now relishing the prospect of a semi-final shoot-out with University of Ulster, Jordanstown.
UCD, managed by former Galway All-Ireland winner John Divilly, netted from their very first attack as another Dubliner, Ryan Basquel, slotted home from close range.
A minute later, McCaffrey steamed forward for a well-taken goal and UCD were 2-2 to 0-0 in front before Craig Dunleavy responded with a seventh-minute goal for DCU.
But UCD, who have won this competition a record 32 times, recovered to establish an 11-point lead at the break.
After half-time, three-time winners DCU, who last year beat UCD by 10 points, outscored the winners by 2-9 to 1-2. Conor McGraynor’s 35th minute goal sparked the revival and when Dublin’s Conor McHugh netted in the 47th minute, the gap was down to just a point, 3-6 to 2-10.
Fintan Kelly levelled proceedings but Mark Hughes bagged a crucial UCD goal 11 minutes from time to settled the Belfield side>.
DCU battled on and Davy Byrne saw a late effort smothered up by some desperate UCD defending. With the last play of the game, McGraynor had a chance of a winning goal but as a host of UCD players stood on the line, the Wicklow forward’s drive was deflected over the bar.
Scorers for UCD: P Mannion 0-5 (1f), M Hughes 1-2, R Basquel 1-1, J McCaffrey 1-0, J Maloney 0-2, C Lenehan 0-1.
Scorers for DCU: C McHugh 1-3 (0-2f), C McGraynor 1-2 (0-2f), C Dunleavy 1-0, D Byrne 0-2, F Kelly, C Begley & G Sweeney 0-1 each.
UCD: E Keogh (Laois); R Wylie (Monaghan), David Byrne (Dublin), R McDaid (Dublin); P O’Harnan (Meath), J McCaffrey (Dublin), C Lenehan (Meath); M O’Hanlon (Wexford), C Sheridan (Meath); M Hughes (Longford), P Kingston (Laois), B Fenton (Dublin); J Maloney (Offaly), P Mannion (Dublin), R Basquel (Dublin).
Subs: C Downey (Meath) for Kingston (21), J Hayes (Cavan) for Fenton (43), P Reilly (Louth) for Lenehan (49), C Driver (Dublin) for Basquel (51), S McEntee (Meath) for Sheridan (54).
DCU: J Farrelly (Meath); E Murray (Galway), D Wrynn (Leitrim), C Cafferky (Roscommon); G Sweeney (Dublin), F Kelly (Roscommon), P Dooney (Monaghan); E O’Connor (Louth), T Flynn (Galway); Davy Byrne (Dublin), C Dunleavy (Dublin), M Quinn (Longford); C McHugh (Dublin), C McGraynor (Wicklow), G Kelly (Galway).
Subs: J Smith (Dublin) for Murray (15), C Begley (Laois) for Kelly (22), F O’Curraoin (Galway) for Dunleavy (half-time), W Lowry (Dublin) for O’Connor (54), F O’Shea (Cork) for Dooney (58).
Referee: Cormac Reilly (Meath).