Начал играть ещё в СССР, провел 1 игру за «Пардаугаву» (Рига), которая выступала в первой лиге.
С 1992 года выступал за «Сконто», где был ведущим игроком. В 1996 году перешёл в «Аустрию» (Вена). В Австрии оказался благодаря экс-игроку «Даугавы» Евгению Милевскому, ставшего к тому времени футбольным агентом. В команде быстро освоился, играл за основу и на своей любимой позиции — под нападающими. Однако, в итоге, в Австрии выступал только сезон. В 1997 году вернулся в «Сконто», откуда вновь уехал в 1999 году выступать за «Бристоль Роверс».
С 2009 года — игрок «Олимпа/РФШ». В июле 2009 года подписал полугодовой контракт с клубом «Вентспилс». В 2010 году вновь вернулся в «Сконто».
Дебютировал в сборной 26 августа 1992 года в матче со сборной Дании в Риге (0-0). Участник Чемпионата Европы 2004 года.
17 ноября 2010 года перед товарищеским матчем со сборной Китая Виталий объявил о завершении спортивной карьеры.
После матча 17 августа 2005 года между сборными России и Латвии в рамках отборочного турнира к чемпионату мира 2006 (1:1) в одном из рижских изданий появилось интервью игрока, где он заявил, что россияне попытались его подкупить. Это вызвало огромный общественный резонанс, затем игрок заявил, что не говорил такого, а газета отказалась выдавать аудиозапись интервью, и скандал затих. Астафьев извинился перед РФС, игроками и тренерами сборной России за свои слова, объяснив сложившуюся ситуацию неточным переводом его слов с латышского на русский. Интересно, что в то время Астафьев выступал в России в казанском «Рубине».