I am having good success with this:
- midweight merino wool shirt baselayer,
- loose (ie. one size larger than normal) polyester longsleeve running shirt as a midlayer
- nylon windbreaker on top.
This has become my go-to setup for temps from upper 20's down to single digits degrees F.
I've also been wearing a merino wool baselayer on my legs under my polyester track pants. I was having some issues with tight hamstrings and calves (that might have been related to my switch to winter tires and resultant incease in rolling resistance) that I have mostly solved with warmer leg apparel and with pre-ride and post-ride stretching and gearing down my bike and spinning easier. It seems to be more important in the colder weather, at least for this old body.