Kilmarnock took the lead in the eighth minute through Danny Invincibile but Elliot struck twice before the interval.
Bruno Aguiar extended the hosts’ lead five minutes after the restart with a close-range finish before then hitting a penalty against the post.
Hearts had further chances to win by a greater margin as they moved seven points clear in third.
In blustery conditions, the hosts made a composed start to proceedings as they casually passed the ball around the slippery Tynecastle pitch.
However, in Kilmarnock’s first real attack in the eighth minute, Jim Jefferies’ side took the lead through Invincibile.
Mehdi Taouil crossed from the corner of the box and the Australian marksman was afforded time to bullet a header beyond Janos Balogh from close range.
Shocked by going behind, Hearts sought to make amends and Michael Stewart’s left-footed shot from outside the area was deflected comfortably into goalkeeper Alan Combe’s path.
The Kilmarnock goalkeeper was called upon in the 12th minute to expertly tip Andy Driver’s looping volley over the bar.
Hearts then equalised in the 22nd minute through Elliot. Combe could only block Marius Zaliukas’ close-range effort from Bruno Aguiar’s angled free-kick and Elliot bundled the ball over the line.
Elliot was in the mood after notching his side’s equaliser as he then gave the home side the lead in the 28th minute.
The former Scotland Under-21 marksman got in front of David Lilley to direct Wallace’s cross in at the near-post.
Hearts looked dangerous every time a cross was delivered into the box as Elliot was just out of reach of Obua’s pass in his bid to register a first-half hat-trick.
Elliot passed up an even better chance five minutes before the interval.
The striker began the move by sending Andy Driver free on the right flank but his mis-hit shot from 18 yards failed to find the target after being teed up by his team-mate.
Kilmarnock striker Kevin Kyle twice tested Balogh with headers before the interval that the goalkeeper dealt with.
Within five minutes of the restart, Hearts opened up a two-goal cushion after Aguiar found the net.
The ball broke to the Portuguese playmaker after Elliot slid in on Driver’s cross and he made no mistake right in front of Combe.
Aguiar turned provider for Elliot minutes later with a floated free-kick but the striker’s glancing header missed the target.
It was one-way traffic as Ruben Palazuelos headed over from six-yards from Wallace’s cross.
Wallace was next to threaten with a left-footed strike that sailed just wide.
Hearts were then awarded a penalty on the hour mark after Kilmarnock substitute Ryan O’Leary felled Elliot in the area.
Aguiar ignored calls from the home supporters for Elliot to be given the chance to score his third before seeing his shot come back off the upright.
Elliot was still chasing his hat-trick and was presented with another chance in the 79th minute courtesy of Stewart’s through ball.
The marksman cut back inside Simon Ford on the edge of the box but Combe got down well to his low curling effort.
Kilmarnock missed a great chance to drag themselves back into the match when O’Leary headed wide right in front of goal just seconds later.
Kyle headed the ball back across goal but the substitute failed to make proper contact.
Hearts supporters were on their feet to acknowledge Elliot’s contribution when the player was replaced by Christian Nade with a minute left.