Hearts looked every inch a side buoyed by their late derby equaliser at the weekend, knocking the ball around sharply with Blair Spittal at the heart of it.
It was he who had the first chance, whipping the ball low from the edge of the box to produce a fine save from Robby McCrorie.
Despite the hosts enjoying the lion’s share of possession, Kilmarnock were able to carve out chances on the counter. Vassell won a race with Craig Gordon to lift the ball over him, but it was cleared off the line by Kye Rowles.
The sides were trading chances. Cammy Devlin had a shot deflected inches wide before Danny Armstrong and Joe Wright went close.
It was Hearts who took the lead, though.
A brilliant quick throw from Lawrence Shankland set Kenneth Vargas free, and the forward was able to pull back to Spittal. Instead of shooting, he pulled the ball across to Forrest who finished well.
The second-half started, seemingly, quite well for the hosts. They had Kilmarnock penned in their own box, but they were soon punished for their profligacy.
Vassell won a physical battle with Frankie Kent to earn the ball in the box. His shot was blocked, but it spun to Kennedy, who sliced a half-volley into the top corner.
Five minutes later, the visitors were ahead. A simple long throw into the Hearts' box wasn't dealt with. Wright was able to backheel to Vassell, who held off the defender to swivel and score.
The hosts were rocked and while they continued to play neat passes and got into dangerous areas, McCrorie was rarely tested.