Василий Григорьевич Зайцев родился 23 марта 1915 года в селе Еленинка Карталинского района Челябинской области в семье крестьянина. Окончил семь классов неполной средней школы. В 1930 году окончил строительный техникум в городе Магнитогорске, где получил специальность арматурщика.
С 1937 года служил на Тихоокеанском флоте, где его зачислили писарем артиллерийского отделения. После учёбы в Военно-хозяйственной школе его назначили начальником финансовой части на Тихоокеанском флоте, в бухте Преображение. В этой должности его и застала война.
К лету 1942 года старшина 1-й статьи Зайцев подал пять рапортов с просьбой направить его на фронт. Наконец, командир удовлетворил его просьбу, и Зайцев уехал в действующую армию. Сентябрьской ночью 1942 года, вместе с другими тихоокеанцами, Зайцев переправился через Волгу и принял участие в боях за город Сталинград.
Уже в первых схватках с врагом Зайцев показал себя незаурядным стрелком. Однажды Зайцев с расстояния в 800 метров из окна уничтожил трёх солдат противника. В награду Зайцев вместе с медалью «За отвагу» получил снайперскую винтовку. К тому времени из простой «трёхлинейки» Зайцев убил 32 солдата противника. Вскоре о нём заговорили в полку, дивизии, армии.
В Зайцеве сочетались все качества, присущие снайперу, — острота зрения, чуткий слух, выдержка, хладнокровие, выносливость, военная хитрость. Он умел выбирать самые лучшие позиции, маскировать их; обычно скрывался от вражеских солдат там, где они не могли и предполагать русского снайпера. Прославленный снайпер бил врага беспощадно. Только в период с 10 ноября по 17 декабря 1942 года в боях за Сталинград В. Г. Зайцев уничтожил 225 солдат и офицеров противника, в том числе 11 снайперов, а его товарищи по оружию в 62-й армии — 6000. Особенно прославил Зайцева снайперский поединок с немецким «сверхснайпером», которого сам Зайцев в своих воспоминаниях называет майором Кёнингом (согласно Алану Кларку — начальник школы снайперов в Цоссене, штандартенфюрер СС Гейнц Торвальд), присланным в Сталинград со специальным заданием борьбы с русскими снайперами, причем первоочередной задачей имел уничтожение Зайцева. Зайцев, в свою очередь, получил задание уничтожить его лично от комдива Н. Ф. Батюка. После того как у одного из советских снайперов был разбит пулей оптический прицел, а другой в том же районе был ранен, Зайцеву удалось установить позицию противника. О последовавшем затем поединке Василий Григорьевич написал:
«Я был уверен, что вы эту берлинскую птицу подстрелите», — сказал командир дивизии. В настоящее время винтовка майора Кёнинга (Mauser 98k) находится в экспозиции Центрального музея Вооруженных Сил в Москве. В отличие от всех стандартных как немецких, так и советских винтовок того времени, у которых увеличение прицела было лишь в 3-4 раза, так как с большим увеличением могли работать лишь виртуозы, прицел на винтовке начальника берлинской школы имел увеличение в 10 раз. Именно это говорит об уровне противника, с которым пришлось столкнуться Василию Зайцеву.
Василию Зайцеву не довелось вместе с боевыми друзьями отпраздновать день победоносного завершения грандиозной Сталинградской битвы. В январе 1943 года, выполняя приказ командира дивизии о срыве немецкой атаки на правофланговый полк силами снайперской группы Зайцева, в которой на тот момент было лишь 13 человек, взрывом мины Зайцев был тяжело ранен и ослеп. Лишь 10 февраля 1943 после нескольких операций, сделанных в Москве профессором Филатовым, к нему вернулось зрение.
Всю войну В. Г. Зайцев служил в армии, в рядах которой начал свой боевой путь, возглавлял школу снайперов, командовал миномётным взводом, затем был командиром роты. Он участвовал в освобождении Донбасса, в битве за Днепр, сражался под Одессой и на Днестре. Май 1945 года капитан В. Г. Зайцев встретил в Киеве — снова в госпитале.
В военные годы Зайцев написал два учебника для снайперов, а также изобрёл применяемый до сих пор приём снайперской охоты «шестёрками» — когда одну и ту же зону боя перекрывают огнём три пары снайперов (стрелки и наблюдатели).
После окончания войны демобилизовался и поселился в Киеве. Был комендантом Печерского района. Заочно учился во Всесоюзном институте текстильной и лёгкой промышленности. Работал директором машиностроительного завода, директором швейной фабрики «Украина», возглавлял техникум лёгкой промышленности.
Скончался 15 декабря 1991 года. Был похоронен в Киеве на Лукьяновском военном кладбище, хотя его последним желанием было быть похороненным в сталинградской земле, которую он защищал.
31 января 2006 года прах Василия Григорьевича Зайцева был торжественно перезахоронен в Волгограде на Мамаевом кургане.