Lawmakers passed AB2348 on a 23-15 vote. The legislation now goes to the Assembly for a final vote.
Supporters say the bill would make it easier for women to get contraceptives at primary care clinics. It would allow registered nurses, nurse practitioners and nurse-midwives to dispense the pill, patches and rings.
Critics say only trained physicians should prescribe medication, and that the bill would reduce medical standards.
The Associated Press contributed to this report.