A fantastic solo effort from Rory McKenzie opened the scoring after just four minutes and although the hosts levelled through Ryan Conroy, Chris Johnston and Sammy Clingan rendered Mark Stewart’s late effort mere consolation.
Dundee paid the price for some shoddy defending early on, as McKenzie breezed past three challenges before beating Steven Simonsen from just inside the area with a well-placed shot.
The hosts responded well and Lewis Toshney and John Baird had already gone close by the time they levelled in the 19th minute – Gary Irvine driving his way to the byline and crossing for Conroy to tuck home at the back post.
Gary Harkins passed up two chances to snatch the momentum for Dundee before the break and they were made to pay on the hour-mark, when Johnston produced a stunning curler that left Simonsen clutching at thin air.
Cammy Bell had to be alert to preserve the lead with a smart tip-over to deny Kevin McBride and 17 minutes from time, Clingan capitalised on smart work by Rabiu Ibrahim to put the points beyond doubt.
A fantastic lobbed finish from Stewart provided brief hope for Dundee, but Kilmarnock ultimately held firm in the closing stages.