Kristin Perry and Sandra Stier fought long for the day they could exchange wedding vows with no judicial cloud on the horizon.
That day came Friday, when they stood before California Attorney General Kamala Harris on an interior balcony in the San Francisco City Hall rotunda.
"They have waited, hoped and fought for this moment. Today, their wait is finally over," Harris told observers.
Harris began marrying same-sex couples two days after a landmark U.S. Supreme Court ruling cleared the way for the marriages.
Perry and Stier were plaintiffs in the lawsuit before the nation's highest court.
The lesbian couple has been together since 1997.
Stier held a bouquet of white roses during the ceremony.
Perry wore a pants suit; Stier a dress with heels.
One spectator, a man, wore a rainbow-colored vest with a hat resembling a wedding cake.
The ring bearer was Elliot Perry, 18, one of the couple's twin sons who just graduated from high school and will be attending college.
Harris presided over the exchange of vows, with the couple, spectators and media gathered on the balcony.
Harris: "Do you, Kris, take Sandy to be your lawfully wedded wife...."
Stier: "I do."
Harris: "Do you, Sandy, take Kris to be your lawfully wedded wife...."
Perry: "I do."
Harris: "You may now present the ring."
Perry and Stier exchanged rings and vows.
The attorney general then stated that by the power and authority invested in her by the state of California, "I now declare you spouses for life."
The spouses kissed.
Cheers echoed in the rotunda.