House Speaker Nancy Pelosi said the move showed Mr Bush condoned criminal conduct, and Hillary Clinton said he elevated cronyism over the rule of law.
Republicans who had called for a full pardon for Libby welcomed the decision.
Libby was facing a 30-month sentence for obstructing an inquiry into the leaking of a CIA agent's name.
Though no longer required to go to jail, Libby is still due to serve a period of probation and pay a fine.
'Betrayal of trust'
The BBC's James Westhead in Washington said the president's decision was a compromise between pardoning Libby outright and allowing his sentence to stand.
But Ms Pelosi described the president's intervention as a "betrayal of trust of the American people".
Ms Clinton, a frontrunner in the Democratic race for the presidency, said she was incensed by the move.
"What we saw today was elevating cronyism over the rule of law. And what we saw today was further evidence that this administration has no regard whatsoever for what needs to be held sacred," she told the BBC.
But Republican presidential hopefuls Rudolph Giuliani and Mitt Romney welcomed the decision.
"I believe that the circumstances of this case, where the prosecutor knew that there had not been a crime committed, created a setting where a decision of this nature was reasonable," the New York Times quoted Mr Romney as saying on the campaign trial in Iowa.
Both men said in a Republican presidential debate last month that they would consider a pardon.
Lewis Libby, also known by his nickname, "Scooter" Libby, was found guilty in March of perjury and obstructing justice in a case connected to Washington's decision to invade Iraq.
His trial stemmed from the accusation that the White House had illegally made public the identity of a serving CIA agent, Valerie Plame, in an apparent effort to embarrass her husband.
Ms Plame's husband, a former US diplomat, had publicly criticised the basis for the invasion of Iraq.
Libby was found to have lied to investigators about conversations where he mentioned Ms Plame but he was not convicted of having directly leaked her name.
He was sentenced to two-and-a-half years in prison, two years of probation and a fine of $250,000 (£125,000).
President Bush said he had until now refrained from intervening in the case, waiting instead for the appeals process to take its course.
"I respect the jury's verdict," he said. "But I have concluded that the prison sentence given to Mr Libby is excessive," Mr Bush said.However, he said, Libby's remaining punishments - the probation period and fine - were "harsh" and would leave his reputation "forever damaged".