Weaver was born in Dayton, Ohio. He served for the Union in the American Civil War, rising to the rank of brigadier general. After unsuccessfully running for offices as a Republican, he joined the Greenback Party, and served two terms in the House of Representatives.
He advocated a populist pro-farmer agenda including soft money and Prohibition of alcohol. He was the Greenback candidate for President in the 1880 election. He again ran for President as the Populist Party candidate in 1892, where he polled a respectable third place with 22 electoral votes and over a million popular votes. He threw his support behind William Jennings Bryan in 1896, which helped Bryan win the Democratic Party nomination, but did not win him the general election.
He died in Des Moines, Iowa.