(CNN) -- 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.
Perry began to cry.
Their son, in a suit, stood between them, posing for the cameras on the balcony. Each newlywed kissed him on a cheek.
"Thank you so much for coming to our wedding," Stier said afterward. "We waited a long time for this day. We fell in love 14 years ago."
Added Perry: "It's a great day in San Francisco, it's a great day in California and it's a great day in the country because Sandy and I are married.
"Other famlies out there in similar circumstances should fight to be married, too," Perry said, referring to other states that don't have same-sex marriage laws. "Sandy and I being married represents the conclusion of a difficult period in California."
The 9th U.S. Circuit Court of Appeals ruled Friday that same-sex marriages could resume in California, a move that the Supreme Court paved the way for on Wednesday.
California's Supreme Court struck down the state's ban on same-sex marriage in May 2008, ruling that the state's constitution gives "this basic civil right to (marry to) all Californians, whether gay or heterosexual, and to same-sex couples as well as to opposite-sex couples."
But months later, 52% of voters backed Proposition 8 to once again restrict marriages so that they could only be between a man and a woman.
A federal appeals court ruled that Proposition 8 was unconstitutional, though it still issued a stay on same-sex marriages until the U.S. Supreme Court could weigh in.
San Francisco Mayor Edwin Lee said, "Now, and from this day forward, same-sex couples can share in the same joy that is available to all Americans."
City Hall will be open Saturday and Sunday for similar ceremonies.
Stier told reporters before the ceremony that she believes young Californians can now grow up feeling "they can be who they want to be" -- with government protection for all.
"I have never felt equal and I will after I marry," said Perry. "I will belong to a family that I chose."
The couple said their marriage was arranged so quickly Friday and their other three children couldn't attend the ceremony.
So ended California's nine years of legal struggle for same-sex marriage -- in a mere few minutes devoted to roses, kisses and "I do's."
CNN's Phil Gast contributed to this report.