The men's Keirin in cycling at the 2004 Summer Olympics was contested by 22 cyclists. A Keirin race consisted of eight laps of the track, or 2 kilometres.

Medalists

{| class="wikitable"

|-

|align=center bgcolor=gold| 16px|Gold Gold

|align=center bgcolor=silver| 16px|Silver Silver

|align=center bgcolor=cc9966| 16px|Bronze Bronze

|-

|

|

|

|}

Results

First round

The 22 cyclists competed in three heats of seven to eight riders each. The top two riders in each heat (six overall) advanced to the next round, while the other sixteen cyclists competed in the first repechage.

{|

|- valign=top

|

{| class="wikitable sortable" style="font-size:90%;"

|+ Heat 1

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Ryan Bayley ||

|-bgcolor="honeydew"

| 2 || Labros Vasilopoulos ||

|-

| 3 || Jamie Staff ||

|-

| 4 || Łukasz Kwiatkowski ||

|-

| 5 || Theo Bos ||

|-

| 6 || Toshiaki Fushimi ||

|-

| 7 || Jens Fiedler ||

|}

|

{| class="wikitable sortable" style="font-size:90%;"

|+ Heat 2

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || René Wolff ||

|-bgcolor="honeydew"

| 2 || José Antonio Escuredo ||

|-

| 3 || Marty Nothstein ||

|-

| 4 || Jeroslav Jerobek ||

|-

| 5 || Josiah Ng ||

|-

| 6 || Laurent Gané ||

|-

| 7 || Yang Hee-Chun ||

|}

|

{| class="wikitable sortable" style="font-size:90%;"

|+ Heat 3

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Shane Kelly ||

|-bgcolor="honeydew"

| 2 || Ivan Vrba ||

|-

| 3 || Teun Mulder ||

|-

| 4 || José Alberto Sochón ||

|-

| 5 || Ross Edgar ||

|-

| 6 || Hong Suk-Hwan ||

|-

| 7 || Mickaël Bourgain ||

|-

| REL || José Antonio Villanueva ||

|}

|}

First repechage

The first round repechage consisted of three heats of five to six riders each. The top two cyclists in each of the heats rejoined the winners from the first round in advancing to the second round. The rest were eliminated from competition.

{|

|- valign=top

|

{| class="wikitable sortable" style="font-size:90%;"

|+ Heat 1

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Jamie Staff ||

|-bgcolor="honeydew"

| 2 || Jens Fiedler ||

|-

| 3 || José Antonio Villanueva ||

|-

| 4 || Ross Edgar ||

|-

| 5 || Jeroslav Jerobek ||

|-

| 6 || Laurent Gané ||

|}

|

{| class="wikitable sortable" style="font-size:90%;"

|+ Heat 2

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Mickaël Bourgain ||

|-bgcolor="honeydew"

| 2 || Josiah Ng ||

|-

| 3 || Jose Sochon ||

|-

| 4 || Marty Nothstein ||

|-

| 5 || Toshiaki Fushimi ||

|}

|

{| class="wikitable sortable" style="font-size:90%;"

|+ Heat 3

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Theo Bos ||

|-bgcolor="honeydew"

| 2 || Łukasz Kwiatkowski ||

|-

| 3 || Hong Suk-Hwan ||

|-

| 4 || Teun Mulder ||

|-

| 5 || Yang Hee-Chun ||

|}

|}

Second round

The second round consisted of two heats, with the twelve cyclists split into groups of six. The top three riders in each heat advanced to the final, while the bottom three in each heat competed in the classification race for seventh to twelfth places.

{|

|- valign=top

|

{| class="wikitable sortable" style="font-size:95%;"

|+ Heat 1

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Ryan Bayley ||

|-bgcolor="honeydew"

| 2 || Josiah Ng ||

|-bgcolor="honeydew"

| 3 || José Antonio Escuredo ||

|-

| 4 || Ivan Vrba ||

|-

| 5 || Łukasz Kwiatkowski ||

|-

| REL || Jamie Staff ||

|}

|

{| class="wikitable sortable" style="font-size:95%;"

|+ Heat 2

|-

! Place || Name || Nation

|-bgcolor="honeydew"

| 1 || Shane Kelly ||

|-bgcolor="honeydew"

| 2 || René Wolff ||

|-bgcolor="honeydew"

| 3 || Mickaël Bourgain ||

|-

| 4 || Jens Fiedler ||

|-

| DNF || Theo Bos ||

|-

| REL || Labros Vasilopoulos ||

|}

|}

Classification 7-12

{| class="wikitable sortable" style="font-size:95%;"

|-

! Place || Name || Nation

|-

| 1 || Łukasz Kwiatkowski ||

|-

| 2 || Jens Fiedler ||

|-

| 3 || Labros Vasilopoulos ||

|-

| REL || Ivan Vrba ||

|-

| DNS || Theo Bos ||

|-

| DNS || Jamie Staff ||

|}

Final

{| class="wikitable sortable" style="font-size:95%;"

|+Final results