The 2002–03 Heineken Cup was the eighth edition of the Heineken Cup. Competing teams from France, Ireland, Italy, Wales, England and Scotland, were divided into six pools of four, in which teams played home and away matches against each other. The pool winners and two best runners-up qualified for the knock-out stages.
Teams
{| class="wikitable" width=100%
|-
!France
!England
!Wales
!Scotland
!Ireland
!Italy
|- valign=top
|
- Béziers
- Perpignan
- Bourgoin
- Montferrand
- Toulouse
- Biarritz Olympique
|
- Leicester Tigers
- Gloucester
- Sale Sharks
- Bristol
- London Irish
- Northampton Saints
|
- Neath
- Llanelli
- Swansea
- Newport
- Cardiff
|
- Glasgow Rugby
- Edinburgh Rugby
|
- Munster
- Leinster
- Ulster
|
- Calvisano
- Viadana
|}
Pool stage
In the pool matches teams received
- 2 points for a win
- 1 points for a draw
Pool 1
{| class="wikitable" style="text-align: center;"
|-
!width="200"|Team
!width="20"|P
!width="20"|W
!width="20"|D
!width="20"|L
!width="20"|Tries for
!width="20"|Tries against
!width="30"|Try diff
!width="20"|Points for
!width="20"|Points against
!width="25"|Points diff
!width="20"|Pts
|- bgcolor="#ccffcc"
|align=left| Leicester Tigers
|6||5||1||0||31||6||25||232||71||161||11
|-
|align=left| Neath
|6||2||1||3||18||12||6||151||139||12||5
|-
|align=left| L'Amatori & Calvisano
|6||2||0||4||10||34||−24||105||236||−131||4
|-
|align=left| Béziers
|6||2||0||4||8||15||−7||109||151||−42||4
|}
Pool 2
{| class="wikitable" style="text-align: center;"
|-
!width="200"|Team
!width="20"|P
!width="20"|W
!width="20"|D
!width="20"|L
!width="20"|Tries for
!width="20"|Tries against
!width="30"|Try diff
!width="20"|Points for
!width="20"|Points against
!width="25"|Points diff
!width="20"|Pts
|- bgcolor="#ccffcc"
|align=left| Perpignan
|6||4||0||2||23||16||7||176||156||20||8
|- bgcolor="#ccffcc"
|align=left| Munster
|6||4||0||2||27||14||13||206||107||99||8
|-
|align=left| Gloucester
|6||4||0||2||31||14||17||241||140||101||8
|-
|align=left| Arix Viadana
|6||0||0||6||15||52||−37||128||348||−220||0
|}
Pool 3
{| class="wikitable" style="text-align: center;"
|-
!width="200"|Team
!width="20"|P
!width="20"|W
!width="20"|D
!width="20"|L
!width="20"|Tries for
!width="20"|Tries against
!width="30"|Try diff
!width="20"|Points for
!width="20"|Points against
!width="25"|Points diff
!width="20"|Pts
|- bgcolor="#ccffcc"
|align=left| Llanelli
|6||5||0||1||22||16||6||201||130||71||10
|-
|align=left| Bourgoin
|6||4||0||2||21||14||7||190||142||48||8
|-
|align=left| Glasgow Rugby
|6||2||0||4||9||23||−14||86||185||−99||4
|-
|align=left| Sale Sharks
|6||1||0||5||16||15||1||123||143||−20||2
|}
Pool 4
{| class="wikitable" style="text-align: center;"
|-
!width="200"|Team
!width="20"|P
!width="20"|W
!width="20"|D
!width="20"|L
!width="20"|Tries for
!width="20"|Tries against
!width="30"|Try diff
!width="20"|Points for
!width="20"|Points against
!width="25"|Points diff
!width="20"|Pts
|- bgcolor="#ccffcc"
|align=left| Leinster
|6||6||0||0||22||7||15||188||93||95||12
|-
|align=left| Bristol Shoguns
|6||3||0||3||15||17||−2||149||144||5||6
|-
|align=left| Montferrand
|6||2||0||4||15||8||7||141||120||21||4
|-
|align=left| Swansea
|6||1||0||5||8||28||−20||109||230||−121||2
|}
Pool 5
{| class="wikitable" style="text-align: center;"
|-
!width="200"|Team
!width="20"|P
!width="20"|W
!width="20"|D
!width="20"|L
!width="20"|Tries for
!width="20"|Tries against
!width="30"|Try diff
!width="20"|Points for
!width="20"|Points against
!width="25"|Points diff
!width="20"|Pts
|- bgcolor="#ccffcc"
|align=left| Toulouse
|6||5||0||1||29||9||20||241||118||123||10
|-
|align=left| London Irish
|6||3||0||3||12||13||−1||158||118||40||6
|-
|align=left| Edinburgh Rugby
|6||2||0||4||15||19||−4||125||188||−63||4
|-
|align=left| Newport
|6||2||0||4||11||26||−15||117||217||−100||4
|}
Pool 6
{| class="wikitable" style="text-align: center;"
|-
!width="200"|Team
!width="20"|P
!width="20"|W
!width="20"|D
!width="20"|L
!width="20"|Tries for
!width="20"|Tries against
!width="30"|Try diff
!width="20"|Points for
!width="20"|Points against
!width="25"|Points diff
!width="20"|Pts
|- bgcolor="#ccffcc"
|align=left| Northampton Saints
|6||4||0||2||21||10||11||172||110||62||8
|- bgcolor="#ccffcc"
|align=left| Biarritz Olympique
|6||4||0||2||14||5||9||138||73||65||8
|-
|align=left| Ulster
|6||4||0||2||8||8||0||116||106||10||8
|-
|align=left| Cardiff
|6||0||0||6||6||26||−20||78||215||−137||0
|}
Seeding
{| class="wikitable" style="text-align: center;"
|-
!Seed
!Pool Winners
!Pts
!TF
!+/−
|-
|1
|align=left| Leinster
|12||22||+95
|-
|2
|align=left| Leicester Tigers
|11||31||+161
|-
|3
|align=left| Toulouse
|10||29||+123
|-
|4
|align=left| Llanelli
|10||22||+71
|-
|5
|align=left| Perpignan
|8||31||+101
|-
|6
|align=left| Northampton Saints
|8||21||+62
|-
!Seed
!Pool Runners-up
!Pts
!TF
!+/−
|-
|7
|align=left| Munster
|8||27||+99
|-
|8
|align=left| Biarritz Olympique
|8||14||+65
|-
| –
|align=left| Bourgoin
|8||21||+48
|-
| –
|align=left| Bristol Shoguns
|6||15||+5
|-
| –
|align=left| London Irish
|6||12||+40
|-
| –
|align=left| Neath
|5||18||+12
|-
|}
Knockout stage
Quarter-finals
Semi-finals
Final
Toulouse became the second team to win the competition more than once.
