Spectral unmixing is a useful technique in fluorescence imaging for reducing the effects of native tissue autofluorescence and separating multiple fluorescence probes. While spectral unmixing methods are well established in fluorescence microscopy, they typically rely on precharacterized in-vitro spectra for each fluorophore. However, there are unique challenges for in-vivo applications, since the tissue absorption and scattering can have a significant impact on the measured spectrum of the fluorophore, and therefore make the in-vivo spectra substantially different to that of in vitro. In this work, we introduce a spectral unmixing algorithm tailored for in-vivo optical imaging that does not rely on precharacterized spectral libraries. It is derived from a multivariate curve resolution (MCR) method, which has been widely used in studies of chemometrics and gene expression. Given multispectral images and a few straightforward constraints such as non-negativity, the algorithm automatically finds the signal distribution and the pure spectrum of each component. Signal distribution maps help separate autofluorescence from other probes in the raw images and hence provide better quantification and localization for each probe. The algorithm is demonstrated with an extensive set of in-vivo experiments using near-infrared dyes and quantum dots in both epi-illumination and transillumination geometries.