Johnathan Edwards's first-half try helped them to a 16-6 lead at half-time, but the Italians made a strong start to the second period and deservedly drew level.
However, further tries for Scarlets from Liam Williams and Ben Morgan proved enough to give them continued hope of a top-four finish.
Aironi were dogged opponents though, and Giulio Toniolatti's converted try at the death earned them a losing bonus point.
Rhys Priestland kicked the first of his 11 points with a third-minute penalty, and Scarlets just failed to score the opening try when Nick Reynolds dropped the ball as he went to ground it in the corner.
Aironi scored penalties through Tito Tebaldi and Luciano Orquera either side of Priestland's second successful penalty to make the score 6-6 before Scarlets grabbed a try just before the half-hour mark, Edwards offering good support following a break down the right to touch down.
Priestland added the extras and a third penalty to open up a 10-point lead, although Aironi were unlucky not to pull one back as Josh Sole dropped the ball with the line in sight after a strong Phil John tackle.
A yellow card for Josh Turnbull was seized upon by Aironi, whose converted penalty try brought them level, with Orquera then missing a long-range kick to put them ahead.
Scarlets responded well as Williams exploited a gap in the Aironi defence to race away, and Morgan accepted an offload from Andy Fenby after a tremendous break to also touch down, with both Priestland conversion attempts bouncing off the post and out.
Toniolatti's converted try was the final action as Aironi reduced the deficit to three points, and Scarlets are now just one point behind fifth-placed Ulster and two behind the Glasgow Warriors in fourth with two games to go.