A lower court had found Lance Corporal Joseph Scott Pemberton guilty of killing Jennifer Laude in a hotel in Olongapo, outside a former US navy base northwest of the capital, in 2014.
He was jailed for between six and 10 years on a Philippine military base.
Duterte orders Philippine troops to South China Sea reefs
Pemberton had admitted choking but not killing Laude after, he said, he discovered that a man was giving him oral sex, not a woman. He had been charged with murder but was convicted of the lesser offence of homicide, which does not require malicious intent.
In a ruling dated April 3, but only made public on Monday, the Court of Appeals denied Pemberton's appeal due to "lack of merit".
It also raised the compensation he must pay Laude's family to 150,000 pesos ($3,000) from 80,000 pesos.
The killing stoked anger over the presence of US soldiers on Philippine soil after senators voted two decades ago shut US bases because of social issues, including crimes committed by servicemen.
The two countries are close military allies and the United States has for years led dozens of joint training exercises in the Philippines.
Philippines' Duterte says he would kill drug dealers to protect children
But the relationship has soured under Philippine President Rodrigo Duterte who says the US military presence makes his country a target for conflict, especially if tensions escalate between the United States and China in the South China Sea.
Duterte announced a "separation" from the United States in October, declaring he had realigned with China as the two agreed to resolve their South China Sea dispute through talks.
He has threatened repeatedly to scrap a series of defense pacts with the United States, but taken no concrete steps to do so, and Philippine defense officials frequently reaffirm the strength of the relationship.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ