What you describe is a pretty common approach. You can have a "control" channel over TCP, which handles data which needs the features of TCP (retransmit, data sequencing, etc.) and a "data" channel over UDP which can be lossy.
The alternative would be to define your own protocol over the UDP channel that implemented re-transmits, etc., but it's probably in your best interest just to use a control channel.