WASHINGTON — In 1996, he voted for the Defense of Marriage Act, which bans federal recognition of same-sex marriage. In 1999, he voted to bar gay couples in Washington, D.C., from adopting.

Two years ago, his son told him he was gay.

This week, Sen. Rob Portman, R-Ohio, said he had decided to support same-sex marriage.

The stance puts him at odds with two-thirds of Republican voters and the rest of his fellow Republicans in the Senate.

The main reason for Portman’s shift? His son Will, a junior at Yale University.

In a series of interviews and in an op-ed article published in The Columbus Dispatch, Portman said he did not want Will, 21, treated any differently because of his sexuality.

“I have come to believe that if two people are prepared to make a lifetime commitment to love and care for each other in good times and in bad, the government shouldn’t deny them the opportunity to get married,” Portman wrote in The Columbus Dispatch.

For a Midwestern conservative who served in the George W. Bush administration and made Mitt Romney’s shortlist for vice president, Portman’s reversal was striking.

But Portman’s announcement raises difficult questions for the broader Republican Party, which holds firmly to positions on issues such as gay marriage and immigration that are alienating many voters.

In making the argument for same-sex marriage, Portman used terms intended to resonate with conservatives.

“We conservatives believe in personal liberty and minimal government interference in people’s lives,” he wrote in The Dispatch.

“We should encourage people to make long-term commitments to each other and build families, so as to foster strong, stable communities and promote personal responsibility.”