After Joe Root won the toss and elected to bat, Malan's unbeaten 110 helped the tourists to breathe life back into their Ashes defence by countering hostile bowling on a bouncy WACA Ground wicket hosting an Ashes Test for the last time.
Already down 2-0 in the five-match series, the visitors were wavering at 131 for four against some fiery pace bowling, but Malan steadied the innings with an unbroken 174-run stand for the fifth wicket alongside Jonny Bairstow (75 not out), England's highest partnership of the series.
England overcame the controversial dismissal of opener Mark Stoneman for 56 on a third-umpire decision, and their cause was helped by some generosity from the Australian fielders, who dropped three catches and missed a run out.
Malan was one of the chief beneficiaries as the 30-year-old notched his first century in his eighth Test, and England's first hundred of the series.
He would have been run out for 32 if David Warner had managed a direct hit, and was dropped by Cameron Bancroft in the slips on 92.
He steadied his nerves to notch up his century with a powerful pull shot off Josh Hazlewood, having faced 159 balls in 221 minutes at the crease, hitting 13 fours and one six.
Malan came to the crease with England under pressure against short-pitched bowling from Mitchell Starc, Josh Hazlewood and Pat Cummins, and survived early on by chancing his arm against the rising ball.
He lived dangerously at first, but having survived the onslaught showed plenty of resolve as he settled into his innings and teamed up with Bairstow to build a crucial partnership.
Stoneman Out to Controversial Catch
It was just what England needed after Australia's pace trio came out breathing fire after the lunch break.
They terrorised the English with aggressive bowling that was often more than 90 miles per hour, with Stoneman dropped twice on 52 and struck a fierce blow on the helmet while on the same score.
Stoneman survived all that, only to be contentiously given out caught behind off his glove to Starc by third umpire Aleem Dar for 56.
Stoneman fended at a sharply rising delivery from Starc and wicketkeeper Tim Paine pulled off a brilliant one-handed take, but on-field umpire Marais Erasmus turned down the Australian appeal.
Australia called for a review and Dar took little time overturning the original decision, although there did not appear to be any conclusive evidence to support the reversal.
The decision clearly upset the England camp, with Root and fielding coach Paul Collingwood coming out of the dressing rooms to voice their concern as Stoneman trudged off.
Earlier in the session, Root was caught down the leg side from the bowling of Cummins for 20.
After Root decided not to send the home side in to bat again -- as he had done in Adelaide in the second Test which England lost by 120 runs -- Alastair Cook's form woes continued.
The former skipper was trapped leg before wicket by Starc for just seven, on his landmark 150th Test appearance.
Cook did not review the decision, and the scorer of more than 11,000 Test runs has just 69 in the series at 13.80.
Ashes 2017cameron bancroftDavid WarnerDawid MalanJosh HazlewoodMitchell Starcpaul collingwoodTim Painewaca
First Published: December 14, 2017, 4:27 PM IST