It's tricky to use 3dAllineate directly because it requires several preprocessing strips and a weight mask to do this properly, but you can use align_epi_anat.py to do this instead. Here is an example with the assumption that both datasets have been skull-stripped:
align_epi_anat.py -anat T1_skull_removed+tlrc -epi BOLD_1_Masked+orig -epi_base 0 -anat_has_skull no -epi_strip None -suffix _al2T1 -epi2anat
The script includes motion correction and deobliquing, but these steps can bve turned off. If the datasets are not acquired in the same session, you can use -giant_move to expand the search region. See the align_epi_anat.py help for more options.