no, there is nothing lacking. you've shown it is a surjection, though you didn't realize, and yes, your proof it is injective is perfectly good.
the reals in any non-empty interval may be put in bijection with R, however the bijection has no need to be continuous, and in this case can't be, for high-faluting reasons that needn't worry us.
here are several tricks for doing this:
tan is a good function, it takes the interval (-pi/2,pi/2) bijectively to R
any two open intervals (a,b) (c,d) may be mapped bijectively between themselves simply by "stretching" (can't be bothered to type out the full function, but clearly if you have two intervals of the same length (b-a = d-c) then simply adding c-a to every number is a bijection between them, and (0,1) maps bijectively to (0,k) for all k by multiplication by k).
you can put the interval (0,1) in bijection with [0,1) too.
pick an infinite, increasing sequence in [0,1) starting with 0, say 0, 1/2, 2/3, 3/4, 4/5 etc, and define a map from [0,1) to (0,1) by x maps to x if x not in the sequence, and if x is in the sequence send it to the next element in the sequence.
EDIT: if you want to show there is a bijection between any two sets S and T it suffices to show there is an injection from S to T and an injection from T to S