Spoiler alert! If you haven’t seen the two-hour Desperate Housewives series finale and intend to, stop reading now. If you haven’t seen it but want to know how it ended, continue. We break it down below.
Bree (Marcia Cross): She was on trial for allegedly killing Gaby’s (Eva Longoria) abusive stepfather Alejandro, which Carlos (Antonio Chavira) had actually done. Renee (Vanessa Williams) went to see her fiancé Ben (Charles Mesure) when he got thrown in jail for contempt before their wedding because he refused to answer questions on the stand about an incriminating phone conversation with Bree. Renee told him she’d actually seen something the night of the murder, and the D.A., who’d been eavesdropping on their conversation, threatened to deport Ben if Renee didn’t testify to watching Bree walk up her driveway looking disheveled and carrying a shovel. Bree’s lawyer, Trip (Scott Bakula), finally got Bree scared enough — and turned on enough — that she told him the truth about what happened that night so he wouldn’t be blindsided again. She told him he couldn’t use the information against her friends, but fearing he’d lose the case — and Bree — he called Gaby to the stand. Bree faked fainting to get a recess. Carlos wanted to come forward and tell the truth, but Gaby said she’d confess because the jury would buy her doing it in self-defense but not him, a two-time felon. Carlos told her how much she’d changed, being willing to sacrifice herself for him, which is why he wouldn’t let her risk it — their girls need her around as a role model. To stop Carlos, Gaby put a switchblade in his jacket so the metal detector would go off and the guards would keep Carlos from entering the courtroom. She’d intended to confess, but someone else beat her to it. (More on that below.) Bree went free, and though she claimed she was refusing to see Trip because of his betrayal, it was really because she couldn’t believe that he would want to be with her knowing all of her faults. They eventually reunited at Renee’s wedding reception. They ultimately married and moved to Louisville, where Bree joined a club for conservative women. She was elected to the Kentucky state legislature.
Gaby (Eva Longoria): Her story line involved a promotion to Head of VIP Sales at Cumberly’s. She was spending so much time working, she ended up using Carlos’ old tricks on him — buying him a present to apologize for missing dinner. So, he used one of her old tricks on her — he hired a hot gardener, Carmen (Roselyn Sanchez). Gaby didn’t appreciate him joking about the time in her life she’s least proud of (her affair), but his point was that they can’t go down this road of neglect again. She said they wouldn’t, they’re adults now. Carlos helped her start a personal shopping website, which led to her own show on HSN. They bought a mansion in California and “argued happily ever after.”
Lynette (Felicity Huffman): She thought Tom (Doug Savant) invited himself over to her house to tell her he wanted to get back together. But instead, because he thought he’d seen her with another man, he told her he’d be filing divorce papers the next morning. After Roy (Orson Bean) reminded Tom how important it is to say things to the one you love when you still have the chance to, Tom told Lynette that even though she’d moved on and was in love, she’d always be the love of his life. She told him the man she was in love with was him. They got back together. And then… Katherine (Dana Delany), who is no longer a lesbian, returned to town to offer Lynette a job in New York heading the U.S. division of her wildly successful food company (which sells frozen croissants to French people). Lynette said no, but then reconsidered. Tom said he’d move wherever to make her happy, only he didn’t think she’d ever feel complete. She used her matron of honor toast at Renee’s wedding to make up with him. She told Renee and Ben that if they ever feel like a piece of their heart is missing and nothing seems to fill it, it’s because it’s already been filled by their love and they simply forgot that. Lynette would’ve stayed in town, but Tom agreed to move to New York. Lynette became a CEO, and they became the owners of a penthouse overlooking Central Park, where, years later, Lynette would yell at her six grandchildren.
Susan (Teri Hatcher): She was waiting for the right moment to tell the ladies she’d be the first one to leave Wisteria Lane so she could help daughter Julie (Andrea Bowen) raise her baby. Susan kept trying to fix Julie up with her hot young obstetrician, but that was really just to give Julie a reason to ask her mother if she thought she’d ever find love again. Susan said she may have one more torrid romance in her, but if not, she had enough wonderful memories of Mike (James Denton), who’s dead, and her children to keep her warm at night. Julie’s water broke as she, Susan, Gaby, and Renee were in the limo on the way to Renee’s wedding. Susan eventually stole the limo to get Julie to the hospital; Renee and Gaby, who insisted on stopping at Gaby’s store to get her a dry wedding dress first, were taking too long. Renee and Gaby then had to walk/run to the wedding (security didn’t recognize Gaby, who was without her work ID). Julie gave birth to a healthy baby girl. Susan told the new owner of her house that Wisteria Lane was anything but boring, and she, Julie, Julie’s daughter, and MJ (Mason Vale Cotton) took one last drive around the block. Susan didn’t know it, but everyone who’d died, including Mike and Mary Alice (Brenda Strong), was there to watch her go. They were always there, hoping those on the lane would remember that even the most desperate life is wonderful. Of course, the final shot of the finale showed us the new owner of Susan’s home, a woman named Jennifer, was hiding a secret of her own. Some things will never change.
Mrs. McCluskey (Kathryn Joosten): She was the real heart of the finale. Though she’d wanted to die at home, her doctor told her taking care of her would be too physically demanding for Roy. Just as she was about to move into hospice care, Susan, Bree, Lynette, and Gaby offered to take shifts helping Roy so she could stay. It was Gaby’s turn the night she and Carlos were arguing over who would confess to the murder, and Mrs. McCluskey overheard them. She went to court that next morning and told Trip he should call her as a witness so she could discredit Renee’s testimony because she’d seen her drinking the night she claimed to have seen Bree with a shovel. Instead, Mrs. McCluskey confessed to the murder. Because of her age and illness, the state didn’t press charges. She wasn’t done meddling yet: She’d been wanting Bree to find her Johnny Mathis’ “Wonderful! Wonderful!” on vinyl — which she’d have Roy play over and over again as the end neared. Bree couldn’t find it, so Mrs. McCluskey called Trip and asked him to help. He was happy to, because of what she’d done for Bree. Roy told Bree about Trip finding the record and assured her that he was a decent man — not a manipulative lawyer. Bree thanked Roy for finding the record at Renee’s wedding reception, which was the start of the conversation that ended with them getting their own happily ever after.