News of the contract, which includes options for up to three two-year extensions, sent shares of McKesson up more than 4 percent in after hours trading.
The new agreement, valued by the VA at over $31.6 billion, calls for McKesson to supply all of the VA's more than 700 medical centers and outpatient clinics, as well as its seven consolidated mail outpatient pharmacies.
"Over the past eight years, McKesson has partnered with the VA to serve the healthcare needs of America's veterans," Paul Julian, the company's executive vice president and group president, said in a statement.
The VA, which estimated savings of about $3.26 billion through the life of the contract, said the new agreement goes into effect on May 10.
Shares of McKesson, which closed at $87.90 on the New York Stock Exchange, were trading at $91.89 after hours.
(Reporting By Deena Beasley, editing by M.D. Golan)