A strong answer
A function call transfers control within a program according to a calling convention or ABI. The caller and callee agree on where arguments and results go, which registers are preserved, and how control returns. The compiler may inline the function, so a source-level call does not guarantee a machine-level call or a stack frame.
A system call requests a privileged operating-system service, such as reading a file or creating a process. On a protected system, a special instruction transfers execution into a kernel entry path, where the kernel validates arguments and performs or schedules the operation. It may return data, a status, or an error.
The two can appear together: a C library function may wrap a system call, but some library functions do only userspace work, and one library call can make multiple system calls. Similar syntax does not imply the same boundary.
Follow-up direction
Use a concrete example such as printf versus write: formatted output may be buffered in userspace before a write operation crosses into the kernel.