I've seen all three used in somewhat similar situations. What are the differences between them, and in which cases should i use one over another?
They all mean group of studies in the context of education (as opposed to research).
科目 is the most fine grained of those and corresponds to what constitutes a class (e.g. "Biology", "Physics" in high school).
教科 refer to a group of studies comprised by a few 科目 that belong together (e.g. 理数科 will contain math and science etc.). However it can also be used as synonym for 科目, or more generally refer to class of studies.
学科 usually refers to a department in a university (which would teach multiple 教科s) or what is taught in departments.