Scarlets backrower Dafydd Jones was sent off after only nine minutes for stomping on an opponent's head, and the extra man handed the French club a Cup semi-final.
Man of the match Manny Edmonds scored 13 points for the winners, including two crucial dropped goals in the second half.
"I didn't think I played that well," Edmonds said after the match. "I was lucky the forward pack was going so well, and we'll take a lot out of this game."
Llanelli coach Gareth Jenkins said: "We just have to reflect on the result. We weren't beaten by a better team, but we were beaten.
"Losing Dafydd upset our lineout, in particular. We put a lot of pressure on ourselves out there and we didn't handle it well. We lacked momentum."
Perpignan were awarded a penalty try after only 60 seconds when Irish flanker Simon Easterby tackled fullback Jean-Marc Souverbie without the ball on the Llanelli try-line.
Things went from bad to terrible for the home side in the ninth minute when Wales international Jones was shown the red card, reducing the Scarlets to 14 men for the remaining 71 minutes.
They kept in touch through the boot of Stephen Jones, who made a superb break in the 24th minute before offloading to tighthead prop Matryn Madden to score under the posts. It was Madden's fifth Heineken Cup try - only two men have scored more this season.
The Frenchmen hit back with a soft try to Canadian No 8 Phil Murphy to give them a 14-13 lead at the break, and Edmonds extended the lead with two penalty goals at the start of the second half, one of which was cancelled out by Jones.
Edmonds slotted a monster dropped goal on the hour mark, and added another one before Perpignan withstood a lengthy attack on their try-line as Llanelli desperately tried to level the scores and take the match into extra time.
Perpignan play the winner of tomorrow's Leinster-Biarritz match in Dublin.
Llanelli: Try - M Madden; Pens - S Jones 4; Con - S Jones.
Perpignan: Tries - Penalty try, P Murphy; Pens - M Edmonds 2; Cons - M Edmonds 2; DGs - M Edmonds 2.
Heineken man-of-the-match: Manny Edmonds (Perpignan)
Llanelli: B Davies; G Evans, M Watkins, L Davies (capt), S Finau (M Jones 76); S Jones, D Peel (G Easterby 66); I Thomas, R McBryde, M Madden, V Cooper, C Wyatt, D Jones, S Easterby, S Quinnell
Unused replacements: J Davies, A Gravelle, J Cudmore, I Boobyer, G Bowen
Perpignan; J-M Souverbie; P Bomati, P Giordani, C Manas, F Cermeno; M Edmonds, L Loustau; R Peillard, M Konieckiewicz (M Dal Maso 65), N Mas, J Thion, R Alvarez-Kairelis, G le Corvec , B Goutta (capt) (L Mallier 76), P Murphy (C Porcu 65)
Unused replacements: S de Besombes, J Basset, N Laharrague, F Sid
Red card: D Jones (Llanelli 9)
Yellow card: J Thion (Perpignan 69)