John McGinn headed a 42nd-minute opener following a positive first-half display from the visitors and Paul McGowan capitalised on an uncharacteristic mistake by Hearts goalkeeper Jamie MacDonald to make it 2-0 in the 58th minute.
Hearts had gone into the game looking to further cut the gap created by their 15-point administration penalty but St Mirren picked the perfect moment to record their first victory of the season.
St Mirren had only won once in their 16 previous matches since beating Hearts in the League Cup final on March 17 but, after weathering a lively first 10 minutes from Hearts, they did not look like a team struggling for confidence.
Their midfielders swarmed forward in an entertaining opening period and they gave an assured defensive display after going two up.
That Hampden win might have been crucial in keeping Lennon in a job during their poor start to the season - they picked up only their second point against Aberdeen on Monday night.
And the Saints boss will hope that this latest win over Hearts sparks a contrasting run of form.
Lifted by an electric atmosphere in a 14,769 crowd, Hearts made a positive start and St Mirren goalkeeper Christopher Dilo had to tip Danny Wilson's header over following a Kevin McHattie corner.
Saints midfielder Kenny McLean came close with a long-ranger but Hearts were soon back on the attack when Callum Paterson cut in from the left and fired a powerful strike that Dilo held.
Saints almost scored from the goalkeeper's kick-out but McGowan lobbed just wide following Steven Thompson's header on.
Hearts centre-back Dylan McGowan experienced let-offs following a short backpass and poor clearance and he was then robbed by Saints playmaker McGowan deep in his half, but Thompson could not turn the subsequent ball across the goalmouth on target.
Thompson was soon stretching again to reach McGinn's header across goal but could not get enough contact.
The former Scotland striker then shot past the far post following McGowan's through ball but it was far from an easy chance.
Ryan Stevenson, starting his first game for eight weeks following a knee injury, shot into the side-netting from 20 yards following good work from Jamie Walker, who was soon booked by Craig Thomson for a penalty-box dive.
Saints had a great chance on 35 minutes when McGinn dispossessed Jordan McGhee and fed McGowan but he shot over from 15 yards.
The visitors kept up the pressure and McLean's free-kick was parried by MacDonald before the Hearts defence put Darren McGregor under enough pressure to prevent him converting the rebound.
However, Hearts had a great chance moments before the opener when Paterson fired just over with his left foot from 16 yards after Walker's blocked shot had fallen into his path.
St Mirren scored in the next passage of play.
Thompson got the ball out wide right to Conor Newton, whose cross cleared the Hearts defence and bounced in front of McGinn as he ran into space at the back post. The teenager kept his composure and headed into the roof of the net.
As a 12-year-old boy, McGinn celebrated in the away stand when his brother Stephen, now at Sheffield United, scored St Mirren's previous winner at Tynecastle on Boxing Day 2007, and he enjoyed his moment in front of the Saints fans.
Paterson also missed a good chance just before St Mirren's second.
Stevenson emerged with the ball on the right wing and played a low cross for the forward 14 yards out but Paterson leant back and fired well over.
There appeared little danger as David van Zanten drilled a low cross in from the right flank moments later but MacDonald spilled the ball as he crouched to collect and McGowan stabbed the ball home from close range.
MacDonald recovered to tip over McLean's header from McGinn's diagonal ball and then hold the midfielder's long-range strike.
Hearts pushed forward in the final quarter but Walker saw a deflected free-kick spin just wide and Dilo dealt comfortably with everything else Hearts threw at him.
- Sports & Recreation
- St Mirren
- Paul McGowan