A hospital spokesman had said the 88-year-old ex-president would be released in time to spend the holiday at home, but that changed after Bush developed a fever.
"He's had a few setbacks. Late last week, he had a few low-energy days followed by a low-grade fever," Jim McGrath, Bush's spokesman in Houston, told The Associated Press. "Doctors still say they are cautiously optimistic, but every time they get over one thing, another thing pops up."
He said the cough that initially brought Bush to the hospital on Nov. 23 is now evident only about once a day, and the fever appears to be under control, although doctors are still working to get the right balance in Bush's medications. No discharge date has been set.
"Given his current condition, doctors just want to hang on to him," McGrath said, adding that he didn't know what had caused the fever.
Bush, the nation's 41st president, and his wife, Barbara, live in Houston during the winter and spend their summers in a home in Kennebunkport, Maine.
The former president was a naval aviator in World War II - at one point the youngest in the Navy - and was shot down over the Pacific. He achieved notoriety in retirement for skydiving on at least three of his birthdays since leaving the White House in 1992.
Bush's son, George W. Bush, the 43rd president, has been among his visitors at the hospital.