Seanie Johnston and Gearoid McKiernan each hit 1-5, with David Givney netting the other goal, as the hosts stunned Armagh in a one-sided league clash.
Johnston scored 1-4 in the first half, helping Cavan to a 1-11 to 0-5 advantage at half time.
Armagh are facing a relegation battle after picking up just one win from four league games.
The visitors settled quickly and made a bright start by scoring the opening three points, all from play, in the first five minutes through Ciaran O'Hanlon, Stephen Sheridan and Micheal McKenna.
The game turned on a scruffy goal by Johnston in the sixth minute with Cavan's first purposeful attack - Michael Argue's ball in was collected by Givney and he passed to Johnston, who bundled it home from close range.
The strike woke Cavan up and they hit the next eight unanswered points, while Armagh failed to score for 25 minutes.
Johnston hit four points, two from play, with McKiernan converting two frees.
With Cavan first to most breaking ball, the home side continued to capitalise with Jason McLoughlin also scoring a memorable point from an acute angle.
Trailing 1-8 to 0-3, Armagh finally ended their scoring drought with Stefan Campbell nailing the first of his two first-half frees in the 30th minute.
But Cavan finished with a flourish with the last three points of the half to hold a commanding interval lead.
Ethan Rafferty, who came on 10 minutes before the break, was Armagh's one ray of hope as he landed a long-range free followed by a point early in the second half.
However, he picked up a very harsh black card for a supposed body check on Johnston and with his dismissal Armagh's mini fightback was over.
Cavan rattled up 1-3 without reply in a seven-minute spell after Rafferty went off, the points coming from Givney, McKiernan and a superb point hooked by Johnston over his left shoulder.
Worse was to follow for Armagh with Givney palming home a second goal following a great run and unselfish pass from Martin Reilly after 52 minutes.
McKiernan drilled home a third, his low left-footed finish in the 59th minute.
Cavan: R Galligan; P Faulkner (0-1), K Clarke, J McLoughlin (0-2); C Brady, C Moynagh, K Brady; T Corr, L Buchanan; D McVeety (0-1), G McKiernan (1-5, 3f), M Reilly (0-1); D Givney (1-1), M Argue (0-2), S Johnston (1-5, 2f).
Subs: N Murray for McVeety (BC, 13), R Dunne for Buchanan (48), P O'Connor for Johnston 53), C Mackey for Dunne (BC, 55), J Hayes for McLoughlin (62), B Sankey for Faulkner (65).
Armagh: M McNeice; A Mallon, C Vernon, S Connell; M Shields, S Heffron, S Sheridan (0-1); A Findon, S Campbell (0-3, 3f); N Grimley, A Forker, T Kernan; C Watters, C O'Hanlon (0-1), M McKenna (0-1).
Subs: E Rafferty (0-2, 1f) for Watters (25), A Murnin for Grimley (HT), J McElroy for Rafferty (BC, 46), N McConville for Forker (49), G McParland (0-2, 1f) for Kernan (58), J Hall for O'Hanlon (63).
Referee: Maurice Deegan (Laois)
Cavan crushed Armagh in a rout at Kingspan Breffni Park to boost their chances of staying in Division Two.