1. Vitor Gamito (Por) Porta da Ravessa 57.28.06
2. Claus M. Moller (Den) Maia-MSS 3.51
3. Andrei Zintchenko (Rus) LA Pecol 3.57
4. José Azevedo (Por) Maia-MSS 4.02
5. Juan Mercado (Spa) Vitalicio Seguros 5.16
6. Luis Perez (Spa) Vitalicio Seguros 5.31
7. Joaquim Gomes (Por) LA Pecol 5.44
8. Eladio Jimenez (Spa) Banesto 6.02
9. José Rebollo (Spa) Vitalicio Seguros 6.41
10. Cândido Barbosa (Por) Banesto 7.08
11. Marzio Bruseghin (Ita) Banesto 8.17
12. Rui Sousa (Por) Porta da Ravessa 10.00
13. J. Joaquin Castelblanco (Spa) Kelme-Costa Blanca 11.16
14. Gustavo Otero (Spa) Porta da Ravessa 11.22
15. Melchor Mauri (Spa) Sport Lisboa e Benfica 12.08
16. Carlos Pinho (Por) Barbot Torrié 13.11
17. Felix Cardenas (Col) Kelme-Costa Blanca 13.41
18. Laurent Roux (Fra) Mobilvetta Design-Rossin 14.02
19. Oscar Pereiro (Spa) Porta da Ravessa 14.36
20. Bruno Castanheira (Por) LA Pecol 16.58
21. Arnoldas Saprykinas (Ita) Cantanhede 19.56
22. Hugo Lúcio (Por) Sport Lisboa e Benfica 20.12
23. Joaquim Andrade (Por) Barbot Torrié 22.08
24. Josep Jufre (Spa) Boavista 22.43
25. Michele Laddomada (Ita) LA Pecol 25.14
26. Nuno Ribeiro (Por) Barbot Torrié 28.42
27. Pedro Martins (Por) Gresco Tavira 29.13
28. Youri Sourkov (Rus) LA Pecol 29.54
29. Luis Castellano (Spa) Troiamarisco Matesica 31.00
30. Joaquim Sampaio (Por) Porta da Ravessa 31.15
31. Francisco Cabello (Spa) Kelme-Costa Blanca 32.00
32. Fortunato Baliani (Ita) Selle Italia-Nectar 32.26
33. David Navas (Spa) Banesto 34.54
34. Peio Arreitunandia (Spa) Euskaltel-Euskadi 35.34
35. David Bernabéu (Spa) Boavista 38.03
36. Cássio Freitas (Bra) Cantanhede 38.55
37. Alessandro Speztaletti (Ita) Liquigas-Pata 39.48
38. Joona Laukka (Fin) Sport Lisboa e Benfica 40.56
39. Renzo Ragneti (Ita) Cantanhede 42.59
40. Aitor Gonzalez (Spa) Kelme-Costa Blanca 43.04
41. Alexandre Pinho (Spa) Troiamarisco Matesica 43.09
42. Gorka Gerrikagoitia (Spa) Euskaltel-Euskadi 46.16
43. Eligio Requejo (Spa) Kelme-Costa Blanca 46.34
44. Nuno Alves (Por) Porta da Ravessa 48.32
45. Gianluca Tonetti (Ita) Selle Italia-Nectar 48.48
46. João Silva (Por) Maia-MSS 52.08
47. Rui Lavarinhas (Por) Maia-MSS 54.04
48. Oscar Lopez Uriarte (Spa) Sport Lisboa e Benfica 54.40
49. Marco Serpellini (Ita) Lampre-Daikin 55.14
50. Ezequiel Mosquera (Spa) PRM Tintas VIP Antarte 56.43
51. Aitor Kintana (Spa) Euskaltel-Euskadi 57.52
52. Virgílio Santos (Por) PRM Tintas VIP Antarte 57.58
53. Hélder Lopes (Por) Troiamarisco Matesica 58.09
54. Delmino Pereira (Por) Boavista 59.08
55. Stefano Cattai (Ita) Liquigas-Pata 59.28
56. Saulius Sarkauskas (Ltu) LA Pecol 59.57
57. Unai Yus (Spa) Troiamarisco Matesica 1.00.59
58. Felice Puttini (Swi) Alessio 1.01.55
59. Hernan Buenahora (Col) Selle Italia-Nectar 1.04.52
60. Pedro Munoz Horrillo (Spa) Vitalicio Seguros 1.07.47
61. Vidal Fitas (Por) Porta da Ravessa 1.09.24
62. Matteo Frutti (Ita) Lampre-Daikin 1.09.52
63. Ricardo Felgueiras (Por) Porta da Ravessa 1.10.41
64. Fausto Dotti (Ita) Liquigas-Pata 1.12.34
65. Victoriano Fernandez (Spa) Boavista 1.13.47
66. Quintino Rodrigues (Por) Sport Lisboa e Benfica 1.14.18
67. Rui Roque (Por) Sport Lisboa e Benfica 1.14.22
68. Jorge Carvalho (Por) PRM Tintas VIP Antarte 1.15.11
69. Carlo Finco (Ita) Alessio 1.15.20
70. Angel Edo (Spa) Maia-MSS 1.15.58
71. Jorge Capitán (Spa) Troiamarisco Matesica 1.16.32
72. Francisco T. Garcia (Spa) Vitalicio Seguros 1.16.40
73. Eugen Wacker (Krg) MROZ-Supradyn Witaminy 1.16.51
74. Pedro Soeiro (Por) Boavista 1.17.12
75. Rodolfo Ongarato (Ita) Alessio 1.19.53
76. Gonçalo Amorim (Por) Maia-MSS 1.22.03
77. Ibán Mayo (Spa) Euskaltel-Euskadi 1.24.25
78. Alvaro Forner (Spa) Kelme-Costa Blanca 1.25.20
79. Hélder Silva (Por) Troiamarisco Matesica 1.25.21
80. Ruben Diaz de Certo (Spa) Euskaltel-Euskadi 1.26.24
81. Atanas Petrov (Bul) Boavista 1.27.58
82. Cristiano Frattini (Ita) Liquigas-Pata 1.28.44
83. Pedro Cardoso (Por) Maia-MSS 1.28.47
84. Miguel Suarez (Spa) PRM Tintas VIP Antarte 1.29.18
85. Alberto Ongarato (Ita) Mobilvetta Design-Rossin 1.29.55
86. Alexandr Sheffr (Kaz) Alessio 1.30.29
87. Ruben Galvan (Spa) Kelme-Costa Blanca 1.30.42
88. Nicola Miceli (Ita) Alessio 1.30.50
89. Stefano Venturini (Ita) LA Pecol 1.31.17
90. Fillippo Baldo (Ita) Mobilvetta Design-Rossin 1.33.08
91. Célio Sousa (Por) PRM Tintas VIP Antarte 1.33.20
92. José Rosa (Por) LA Pecol 1.33.33
93. Dariusz Wojciechowsk (Pol) MROZ-Supradyn Witamin 1.35.07
94. Juan Manuel Garate (Spa) Lampre-Daikin 1.35.27
95. David Latasa (Spa) Banesto 1.35.55
96. Krassimir Vassilev (Bul) Gresco Tavira 1.38.20
97. Jorge Sedano (Spa) PRM Tintas VIP Antarte 1.39.02
98. José Barros (Por) Boavista 1.40.52
99. José Sousa (Por) Gresco Tavira 1.41.17
100. José D. Gomez (Spa) Gresco Tavira 1.42.10
101. Timothy Jones (Zim) Mobilvetta Design-Rossin 1.42.26
102. Evandro Portela (Bra) Cantanhede 1.43.49
103. Denis Menchov (Rus) Banesto 1.45.44
104. Vicente Elvira (Spa) Troiamarisco Matesica 1.46.26
105. Igor Flores (Spa) Euskaltel-Euskadi 1.49.57
106. Carlos Carneiro (Por) Maia-MSS 1.50.25
107. Iker Flores (Spa) Euskaltel-Euskadi 1.50.34
108. Paulo Barroso (Por) Maia-MSS 1.50.43
109. Ramon Esparza Medina (Spa) Vitalicio Seguros 1.51.39
110. Domingo Segado (Spa) Gresco Tavira 1.52.54
111. Francisco Cerezo (Spa) Vitalicio Seguros 1.53.32
112. Marco Pinotti (Ita) Lampre-Daikin 1.53.49
113. Raivis Belohvosciks (Pol) Lampre-Daikin 1.54.15
114. Marco Della Vedova (Ita) Lampre-Daikin 1.55.12
115. Hugo Vítor (Por) Cantanhede 1.55.22
116. David Blanco (Spa) PRM Tintas VIP Antarte 1.56.54
117. Nélson Vitorino (Por) Gresco Tavira 2.00.08
118. Pedro Costa (Por) Barbot Torrié 2.02.57
119. Eugeni Berzin (Rus) Mobilvetta Design-Rossin 2.04.23
120. Paulo Costa (Por) PRM Tintas VIP Antarte 2.13.05
121. Luís Silva (Por) Cantanhede 2.23.23
Mountains classification:
1. Felix Cardenas (Col) Kelme-Costa Blanca 89 pts
2. Fortunato Baliani (Ita) Selle Italia-Nectar 78
3. Vitor Gamito (Por) Porta da Ravessa 62
4. José Azevedo (Por) Maia-MSS 42
5. Rui Sousa (Por) Porta da Ravessa 39
Points classification:
1. Saulius Sarkauskas (Ltu) LA Pecol 124 pts
2. Angel Edo (Spa) Maia-MSS 108
3. Andrei Zintchenko (Rus) LA Pecol 91
4. Alberto Ongarato (Ita) Mobilvetta Design-Rossin 87
5. Cândido Barbosa (Por) Banesto 78
6. Matteo Frutti (Ita) Lampre-Daikin 76
7. Pedro Munoz Horrillo (Spa) Vitalicio Seguros 75
8. Claus M. Moller (Den) Maia-MSS 62
9. José Azevedo (Por) Maia-MSS 54
10. Youri Sourkov (Rus) LA Pecol 48
11. Vitor Gamito (Por) Porta da Ravessa 47
12. Juan Mercado (Spa) Vitalicio Seguros 44
13. Luis Perez (Spa) Vitalicio Seguros 42
14. Eladio Jimenez (Spa) Banesto 41
15. Miguel Suarez (Spa) PRM Tintas VIP Antarte 40
Sprints classification:
1. Pedro Martins (Por) Gresco Tavira 29 pts
2. Miguel Suarez (Spa) PRM Tintas VIP Antarte 15
3. Oscar Lopez Uriarte (Spa) Sport Lisboa e Benfica 13
4. Nélson Vitorino (Por) Gresco Tavira 12
5. Dariusz Wojciechowsk (Pol) MROZ-Supradyn Witamin 9
Combination:
1. José Azevedo (Por) Maia-MSS 26
2. Felix Cardenas (Col) Kelme-Costa Blanca 55
3. Juan Mercado (Spa) Vitalicio Seguros 57
4. Youri Sourkov (Rus) LA Pecol 68
5. Oscar Lopez Uriarte (Spa) Sport Lisboa e Benfica 82
Young riders classification:
1. Juan Mercado (Spa) Vitalicio Seguros
2. Oscar Pereiro (Spa) Porta da Ravessa
3. Bruno Castanheira (Por) LA Pecol
4. Hugo Lúcio (Por) Sport Lisboa e Benfica
5. Nuno Ribeiro (Por) Barbot Torrié