The 2003–04 Heineken Cup was the ninth season for which European teams competed for the Heineken Cup. Competing teams, from England, France, Ireland, Italy, Scotland and Wales, were divided into six pools of four, in which teams played home and away matches against each other. The winners of the pools, together with the two best runners-up, qualified for the knock-out stage.
This was the first competition in the series to employ the bonus point system for classifying teams. In prior competitions, teams earned two points for a win and one for a draw. Starting with the 2003–04 competition, teams earned points in the pool matches under the following scenarios: Four points for a win Two points for a draw One bonus point for scoring four or more tries, regardless of the final score One bonus point for losing by seven points or less
Teams FranceEnglandWalesIrelandScotlandItaly Stade Français Toulouse Biarritz Olympique Agen Bourgoin Perpignan Leicester Tigers Leeds Carnegie Sale Sharks Northampton Saints Gloucester London Wasps Newport Gwent Dragons Neath-Swansea Ospreys Cardiff Blues Llanelli Scarlets Celtic Warriors Ulster Munster Leinster Border Reivers Edinburgh Benetton Treviso Calvisano
Pool stage
Pool 1 TeamPWDLTries forTries againstTry diffPoints forPoints againstPoints diffTBLBPts Stade Français 6402118313480541118 Leicester Tigers630317107137115223015 Ulster6303109110910631114 Newport Gwent Dragons6204516−1167146−79019
Pool 2 TeamPWDLTries forTries againstTry diffPoints forPoints againstPoints diffTBLBPts Toulouse 65011871115765924125 Edinburgh6501147713089412022 Leeds Tykes6105511−666122−56015 Neath-Swansea Ospreys6105618−1278155−77004
Pool 3 TeamPWDLTries forTries againstTry diffPoints forPoints againstPoints diffTBLBPts Biarritz Olympique 64021812613997423120 Leinster640213112142113291118 Cardiff Blues620413130123132−90311 Sale Sharks 6204614−875137−62019
Pool 4 TeamPWDLTries forTries againstTry diffPoints forPoints againstPoints diffTBLBPts Llanelli Scarlets 65011751216072882123 Northampton Saints6402134912154671118 Agen 62048718394−111211 The Borders 6105426−2239183−144004
Pool 5 TeamPWDLTries forTries againstTry diffPoints forPoints againstPoints diffTBLBPts Munster Rugby65012251717276964024 Gloucester 6501221111197100974024 Bourgoin 61051322−9119191−72217 Benetton Treviso 61051332−19104225−121105
Pool 6 TeamPWDLTries forTries againstTry diffPoints forPoints againstPoints diffTBLBPts London Wasps650122814186851013124 Celtic Warriors 64021110112311852220 Perpignan 63031311211911542115 Ghial Rugby Calvisano 60061330−17115225−110123
Seeding and runners-up SeedPool WinnersPtsTF+/-1 Toulouse2518+922 London Wasps2422+1013 Munster2422+974 Llanelli Scarlets2317+885 Biarritz Olympique2018+426 Stade Français1811+54SeedPool Runners-upPtsTF+/-7 Gloucester2422+968 Edinburgh2214+41 – Celtic Warriors2011+5 – Northampton Saints1813+67 – Leinster1813+29 – Leicester Tigers1517+22
Knockout stage
Quarter-finals
Semi-finals
Final