William, 21, read a passage from the Bible during a Roman Catholic funeral Mass at St. Columba's Cathedral in Oban. Nineteen-year-old Harry, dressed in a black suit and with close-cropped hair, flew home from a post-high school trip to Africa for the service.
Shand Kydd, 68, died June 3 at her home on Scotland's remote Seil Island after a long illness. She had lived in seclusion for many years and converted to Roman Catholicism.
William's cousin Emily McCorquodale delivered the first reading, before the prince ascended the pulpit. He gripped the lectern and appeared to struggle to master his emotions when his voice faltered as he read from the Bible.
Diana's brother, Charles Spencer, paid tribute to his mother as "an open book — a woman who was afraid of nothing and of nobody, somebody not interested in convention but in truth and fun.
"She believed in equality and decency and had no time for self pity."
Shand Kydd married Edward John Spencer in 1954 at Westminster Abbey. They had three daughters — Diana was the youngest — and one son.
The marriage foundered in 1967 when she fell in love with Peter Shand Kydd, who was married. The pair married in 1969 when the future princess was 8. Diana stayed with her father after the split and decades later told Andrew Morton, author of the 1992 book, "Diana, Her True Story" that her childhood was very unhappy and unstable.
Shand Kydd acknowledged she sometimes had a turbulent relationship with her famous daughter, who married heir-to-the-throne Prince Charles in 1981. The prince and princess divorced in 1996, and Diana was killed in a car crash in Paris the next year.
Prince Charles did not attend Thursday's funeral service.
Earl Spencer said Diana's marriage "inevitably impacted" on his mother's "quiet life," but that the two had remained close.
"Mother became an invaluable source of advice and support for they had wed at a similarly young age," he said.
"Any tensions they may have had were typical tensions between a mother and a daughter," he added.