Sonia and her family move to Albert Square. She is the third of Carol Jackson's (Lindsey Coulson) four children and the result of her mother's one-night stand with Terry Cant, whom Sonia never knew. During her childhood, she becomes close friends with Clare Tyler (Gemma Bissix) and the two are inseparable until Clare falls in with the wrong crowd at school and starts bullying Sonia but they reconcile before Clare leaves in 1998. Sonia has sex with Martin Fowler (James Alexandrou) but starts dating Jamie Mitchell (Jack Ryder). Not knowing she is pregnant, Sonia goes into labour and gives birth to Martin's daughter. Baby Chloe (later renamed Rebecca) is subsequently given up for adoption, despite protests from Martin's mother Pauline Fowler (Wendy Richard). However, Sonia becomes obsessed with her daughter and abducts her, locking herself in her house with the baby. Despite pleas from Rebecca's adoptive parents, it is Sonia's step-grandmother, Dot Cotton (June Brown), that persuades Sonia to return the baby.
Sonia and Jamie get engaged, but due to Jamie's fling with Zoe Slater (Michelle Ryan) and constant rowing, the relationship ends. Sonia dates Gus Smith (Mohammed George), who plans to propose, but he is devastated when Sonia reconciles with Jamie after he is brutally assaulted by his godfather Phil (Steve McFadden). Sonia helps him, nursing him through his injuries and they decide to marry but their happiness is short-lived as Martin accidentally hits Jamie with his vehicle. Sonia keeps a bedside vigil and is with Jamie when he dies.
Sonia eventually forgives Martin and as they grow closer, they fall in love and eventually elope. Sonia begins nursing training and she and Martin live with Pauline but struggle to cope with her interference. Martin gets unwittingly involved with a stalker, Sarah Cairns (Alison Pargeter), who tries to ruin his marriage. This culminates in Sarah holding Sonia and Martin hostage and stabbing Martin, until Sonia knocks her unconscious. Sonia and Martin face further upset when they discover that their daughter's adoptive parents have died in a car crash. They visit Rebecca's (Jade Sharif) guardian, Margaret Wilson (Janet Amsden), hiding their true identity but when Margaret realises who they are, she asks them to leave. Pauline also interferes and visits Rebecca with Martin. Sonia is furious when she learns this and animosity in the Fowlers' home puts a strain on Martin and Sonia's relationship so she spends her time with a colleague, Naomi Julien (Petra Letang); feelings develop and they begin an affair. Martin is heartbroken when his marriage ends and the situation is complicated further by Rebecca, who, on Margaret's request, is spending more time at the Fowlers'. Margaret decides to make the Fowlers' Rebecca's legal guardians but does not include Sonia when she finds out about her lesbian fling. Margaret dies and Martin takes custody of Rebecca and Pauline tries to stop Sonia having any contact with Rebecca. This makes Sonia distraught and preoccupied with Rebecca. Feeling neglected, Naomi ends their relationship.
Sonia becomes depressed and begins to neglect her work and drink alcohol, until Gus helps her straighten her life out. Sonia and Gus begin a second romance, which ends due to Sonia's lingering feelings for Martin. Sonia and Martin receive their divorce papers. However, both regret getting divorced and they reconcile. Pauline eventually finds out and tells Martin that she is dying from a brain tumour to stop him moving in with Sonia. Just as Pauline intends, Martin ends his relationship with Sonia in order to care for her, but when the truth finally comes out, a furious Martin moves out anyway. Pauline responds with ire, threatening to cut her son from her life. Sonia tries to build bridges with Pauline but an argument ends with Sonia slapping Pauline. When Pauline is found dead later that day, Sonia fears that she caused her death. She discovers that Rebecca witnessed the slap and tries to silence her daughter, but Rebecca tells Dot at Pauline's funeral. Appalled, Martin refuses Sonia access to Rebecca. Fearing imprisonment Sonia goes on the run, abducting Rebecca. Martin is frantic, but days later Sonia returns and she is arrested on a murder charge; however, that night Dot uncovers the identity of Pauline's real murderer — Pauline's husband Joe Macer (Ray Brooks), who had argued with Pauline on Christmas Day and struck her over the head, causing her death. Sonia is released and decides to leave Walford for Manchester. After making peace with Martin, she takes a taxi and is about to leave Walford when she sees Martin and Rebecca obstructing the road; Martin has decided that he wants to go with Sonia. The Fowlers reunite and leave as a family. They spend time touring the USA before settling in Manchester.
Bianca invites Sonia to her wedding to Ricky and Sonia attends alone. She rejects a phone call from Martin and gets very drunk. The following day, Sonia walks in on Dot slapping her granddaughter Dotty Cotton (Molly Conlin) across the legs, leading to Dot's arrest, though she is released without charge. Bianca notices Sonia has continuously avoided talking about Martin and Rebecca. Sonia visits Jamie's grave and later returns to The Queen Victoria pub, and drunkenly berates Phil, Jamie's godfather, about his treatment of Jamie. Phil says he considers Jamie to be one of his own children and tells Sonia to go upstairs to sober up. She misunderstands him and gets into his bed, naked. As Phil sees Sonia in bed, Shirley Carter (Linda Henry) walks in and slaps Phil across the face. Sonia confides in Carol about her marriage problems and Carol advises her to try to stay together for Rebecca's sake. After Ricky and Bianca's wedding, Sonia decides she must make a fresh start with Martin and leaves again. However, it is later revealed that Sonia and Martin are no longer together.
In January 2014, Carol informs Sonia, who is having marital problems with Martin again, about her breast cancer diagnosis. Carol has the BRCA gene and Sonia finds out she has inherited it. Sonia kisses Tina Carter (Luisa Bradshaw-White), which Tina's girlfriend, Fiona "Tosh" Mackintosh (Rebecca Scroggs), finds out about, so Tina end her friendship with Sonia to protect her relationship. Sonia, who has started a weight loss class, arranges to have a gastric band in Bulgaria, telling friends and family she is on a course. When she returns, she tries to confess to her class but collapses before she can do so. Sonia and Martin (now played by James Bye) separate and Sonia starts to feel isolated and depressed. Sonia is supported by Tina but Sonia backs away when Tina goes to kiss her as Sonia is unsure of her feelings.
Martin moves back into the area and Rebecca (now played by Jasmine Armfield) moves in with him, as she resents Sonia for leaving Martin. Martin believes he can repair his marriage, but Tina and Sonia share a kiss, which Martin sees. He tells everyone in The Vic about Sonia and Tina, but Sonia ends their relationship. Martin sends Rebecca, who now wants to be called Bex, to live with Sonia so she can spend more time with her mother. Sonia also repairs her relationship with Tina. Martin moves in with Stacey Branning (Lacey Turner), while Sonia and Tina embark on a full relationship. Sonia and Martin's divorce is finalised. After Tina drunkenly humiliates Sonia at an awards ceremony and Sonia rejects her, Tina has sex with Sophie Dodd (Poppy Rush) and regrets it, but before she can tell Sonia, Sonia reveals she has found a lump in her breast. Sonia forgives Tina for the humiliation, but Sophie tells Sonia that Tina cheated and their relationship ends, but they soon reunite. After having her breast lump checked, Sonia is given the all-clear.
Sonia receives a lucrative job offer at a private hospital in Kettering and, having realised she no longer loves Tina, ends their relationship. Bex is furious and thinks Sonia is abandoning her. Bex later calms down and she says an emotional farewell. Several months later, following Madison Drake (Seraphina Beh), Alexandra D'Costa (Sydney Craven) and her former friend Louise Mitchell (Tilly Keeper) continuously bullying Bex, Sonia returns after Bex phones her in tears. Sonia accuses Martin and Stacey of not caring about Bex and tells Martin she wants Bex to live with her. Sonia meets Bex's teachers before returning to Kettering. Sonia returns to Walford and lets herself into Dot's house, finding Dot on the floor after tripping. Sonia and Robbie, who has also returned, move in with Dot to help care for her. It is revealed that Sonia is hiding a secret from her time in Kettering meaning she no longer wants to return there. Although Sonia wants Bex to move in with them, Bex chooses to stay with Martin and Stacey.
Sonia starts dating Bex's teacher Gethin Pryce (Cerith Flinn) but is unaware that Bex is infatuated with him. Bex and Gethin kiss and after Bex's attempts to pursue him and he eventually confesses to Sonia. Gethin subsequently resigns his job at the school and leaves Walford, and Sonia tells Bex that she has done nothing wrong. In December 2017, Sonia discovers Kim Fox (Tameka Empson) having a miscarriage and supports her when she believes that she has left her husband Vincent Hubbard (Richard Blackwood) down. In January 2018, it is discovered that Stacey has slept with Max, which subsequently fractures Martin and Stacey's relationship. Stacey kicks Martin out and Sonia agrees for him to move into No. 25 with her and Bex. Sonia discovers that she may still be in love Martin and agrees to go on a date with him. However Martin still has feelings for Stacey, which upsets Sonia. When Bex decides that she doesn't want to go to university, Sonia pressures Bex into applying to Oxbridge University, much to Bex's annoyance. Bex tells Sonia that she is feeling upset since her boyfriend Shakil Kazemi (Shaheen Jafargholi) was killed and that she isn't ready for university, and Sonia supports Bex's decision. Sonia and Dot care for Harold Legg (Leonard Fenton) when he becomes ill and he moves into No.25. A swastika is graffitied on Dot's door which causes Dr Legg to fall into a panic attack. Sonia blames Dot's new lodger Stuart Highway (Ricky Champ) for the attack and threatens to report him to the police if she comes anywhere near No. 25. However Stuart is innocent and the perpetrators behind the attack are young youths. Sonia's niece Tiffany Butcher (Maisie Smith) is involved in a drug ring and Sonia discovers this when Bernadette Taylor (Clair Norris) informs her. Sonia and the Brannings try to help Tiffany and promise to pay off the drug dealers that Tiffany and her friend Evie Steele (Sophia Capasso) owe money to, in order for Tiffany to stay. Tiffany discovers that Sonia is lying and attempts to leave, but Sonia stops her from leaving causing Tiffany to slap her. They lock Tiffany in and finally release her when she agrees to speak up about the drug ring.
When Bex takes an overdose, Sonia finds her and is dismayed when she realises it was a suicide attempt. She blames herself. Martin returns to Walford and Sonia is angry with Martin for being absent. She is forced to give him a false alibi when police question him about stolen vehicles and convinces him to tell the truth. She forgives him but Martin's behaviour continues and he is injured during an attack so Sonia throws him out. She forgives him again and realises that she still has feelings for him.