D.K.
Obviously holding him for two hours isn't good for you or him, hee hee.
Make sure he is tired, but not overly, vary up times you lay him down. I know when I transitioned to one nap a day I started it earlier, gave lunch at 11 and laid them down at 11:30. Both of mine would sleep a good two hours then until 1:30 and in bed by 7:00. That way it is was right in the middle of when they used to take two naps. If he is overly tired that backfires and they get restless sleep or are wired.
Just continue laying him down, walk out of the room and leave him for a bit. Someone once told me that if they wake up crying they aren't done napping, so if you ignore him for a few minutes he may fall back to sleep. It is normal for them to wake a few times at night and he may just need to learn to fall back to sleep at naptime if he wakes prematurely. That or make his bedtimes earlier to make up for what he is lacking during the day.
At his age he should be getting close to 14 hours total, that is naps and nighttime. Good luck, changing down to one nap may just take some time but he will get it. Just don't rush into him if he wakes up, let him try and go back to sleep or give him quiet downtime.