I just did this for mine after the cats had peed on it numerous times and it just STUNK. I was considering getting a new couch.
However, I have a spot bot, and I used the oxy cleaner (specifically for the spot bot), some regular carpet cleaner, and some odoban (natural deodorizer for pets...enzymatic -- I picked it up at Sam's Club). I cleaned the cushions, and when it was still damp I put on a coating of baking soda to absorb anymore odors. When it was dry I vacuumed up the baking soda and washed the cushions again (they were a little white from the baking soda that got ground in). After that, I was amazed to not smell any bad odors (and I have a VERY sensitive nose). So, I'm not sure if it was all the products, or some of them, but you might want to start with some odoban (and soak the couch with it), and some baking soda (also odor absorber). I also should mention it didn't ruin the nap on the couch at all. It did take a vacuuming with the beater head to get the nap back up, but I'm so excited that it saved my couch (also 3 years old .... close to ending up in a garbage heap).
Good luck :)