Pete St. John (Richard Gere) is a media consultant for several political candidates. He is currently juggling three different political races in New Mexico, Washington, and an unnamed South American country when he finds out that his long-time friend and client, Ohio Senator Sam Hastings, is not seeking reelection to his office. He is then approached by Jerome Cade, a businessman who aspires for Hastings' Senate seat, to work for him, which he reluctantly agrees to. Cade has also hired Arnold Billing (Denzel Washington) as his public relations manager, but Billing doesn't like Pete because he is a friend of Hastings.
Throughout the movie, Pete is traveling across the country and to South America assisting his clients while trying to find out the truth as to why Sen. Hastings is leaving office (he claimed he was ill, but he passed a physical just a few weeks earlier). Pete is also trying to figure out who is bugging his phones and tampering with his private plane. He turns to his ex-wife Ellen, who is also a journalist, to look into Hastings while he looks into Billing. Pete learns that Billing is the one who is bugging the phones as retaliation for Pete's investigation into Cade's past to find out if he had anything to do with Hastings' decision not to run again. Ellen learns that Billing and the Senator's wife were once business partners, and the Senator has been taking payoffs from Billing. If that ever got out, his career would be over anyway. The decision to take the payoffs has always bothered Hastings, so he is leaving office. Upon learning this from Ellen, Pete quits Cade's campaign and begins to help his former partner Wilfred Buckley (Gene Hackman), who is the consultant for a third party candidate in the Ohio Senate race.
In the end, Pete's clients win in Washington and South America, loses in New Mexico, and the third party candidate in Ohio finishes second, ahead of Cade.