Weinberger died in a Bangor, Maine, hospital, CBS reported. His daughter told CNN he died of pneumonia.
Former Secretary of State Colin Powell issued a statement praising Weinberger as a great patriot.
The son of a lawyer, Weinberger was born in San Francisco on Aug. 18, 1917. He served in three Republican administrations, including that of his old friend, Ronald Reagan, where he became the second longest-serving secretary of defense in U.S. history.
A longtime friend and adviser to Reagan from his years as governor of California, Weinberger acted as Reagan's confidant during the 1980 presidential campaign and then became secretary of defense in the first Reagan Cabinet.
Weinberger fought often to keep U.S. forces out of conflicts and opposed sending Marine peacekeeping forces to Beirut in 1982, although he endorsed the 1987 U.S. naval buildup in the Persian Gulf.
At age 70, he retired from his post, citing his wife's declining health.
Weinberger was secretary of Health, Welfare and Education, the Federal Trade Commission and Office of Management and Budget during the Richard M. Nixon administration. He also held the HEW post under President Gerald Ford.
Astronomers offer more expansive view of universe
McPhee, Cokas 'working on their marriage' after affair